機器學習sklearn(58):演算法例項(十五)分類(八)邏輯迴歸(三)linear_model.LogisticRegression(二) 重要引數
阿新 • • 發佈:2021-06-27
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))