1. 程式人生 > 其它 >機器學習sklearn(58):演算法例項(十五)分類(八)邏輯迴歸(三)linear_model.LogisticRegression(二) 重要引數

機器學習sklearn(58):演算法例項(十五)分類(八)邏輯迴歸(三)linear_model.LogisticRegression(二) 重要引數

3 梯度下降:重要引數max_iter

3.1 梯度下降求解邏輯迴歸 3.2 梯度下降的概念與解惑 3.3 步長的概念與解惑
l2 = []
l2test = []
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X,y,test_size=0.3,random_state=420)
for i in np.arange(1,201,10):
  lrl2 = LR(penalty="l2",solver="liblinear",C=0.9,max_iter=i)
  lrl2 = lrl2.fit(Xtrain,Ytrain)
  l2.append(accuracy_score(lrl2.predict(Xtrain),Ytrain))
  l2test.append(accuracy_score(lrl2.predict(Xtest),Ytest))
  
graph 
= [l2,l2test] color = ["black","gray"] label = ["L2","L2test"] plt.figure(figsize=(20,5)) for i in range(len(graph)): plt.plot(np.arange(1,201,10),graph[i],color[i],label=label[i]) plt.legend(loc=4) plt.xticks(np.arange(1,201,10)) plt.show() #我們可以使用屬性.n_iter_來呼叫本次求解中真正實現的迭代次數 lr = LR(penalty="l2",solver="
liblinear",C=0.9,max_iter=300).fit(Xtrain,Ytrain) lr.n_iter_

4 二元迴歸與多元迴歸:重要引數solver & multi_class

from sklearn.datasets import load_iris
iris = load_iris()
for multi_class in ('multinomial', 'ovr'):
  clf = LogisticRegression(solver='sag', max_iter=100, random_state=42,
               multi_class
=multi_class).fit(iris.data, iris.target) #列印兩種multi_class模式下的訓練分數 #%的用法,用%來代替列印的字串中,想由變數替換的部分。%.3f表示,保留三位小數的浮點數。%s表示,字串。 #字串後的%後使用元祖來容納變數,字串中有幾個%,元祖中就需要有幾個變數 print("training score : %.3f (%s)" % (clf.score(iris.data, iris.target), multi_class))

5 樣本不平衡與引數class_weight