簡體   English   中英

Python Logistic回歸產生錯誤的系數

[英]Python Logistic Regression Produces Wrong Coefficients

我正在嘗試使用scikit-learn的LogisticRegression模型來解決Coursera上的Andrew Ng的機器學習課程中的練習2。 但是我得到的結果是錯誤的:

1)結果系數與答案不符:

我從模型中得到什么

Logistic回歸結果

我應該根據答案得到什么

[-25.16,0.21,0.20]

您可以在圖( 錯誤的圖形 )上看到,憑直覺,決策邊界似乎比決策邊界低了一點。

2)圖形結果似乎錯誤

如您所見,決策邊界在下面

邏輯回歸 Logistic回歸圖

回答

答案圖

我的密碼:

% matplotlib notebook



# IMPORT DATA

ex2_folder = 'machine-learning-ex2/ex2'
input_1 = pd.read_csv(folder + ex2_folder +'/ex2data1.txt', header = None)
X = input_1[[0,1]]
y = input_1[2]


# IMPORT AND FIT MODEL

from sklearn.linear_model  import LogisticRegression
model = LogisticRegression(fit_intercept = True)
model.fit(X,y)
print('Intercept (Theta 0: {}). Coefficients: {}'.format(model.intercept_, model.coef_))



# CALCULATE GRID
n = 5

xx1, xx2 = np.mgrid[25:101:n, 25:101:n]
grid = np.c_[xx1.ravel(), xx2.ravel()]
probs = model.predict_proba(grid)[:, 1]
probs = probs.reshape(xx1.shape)


# PLOTTING

f = plt.figure()
ax = plt.gca()


for outcome in [0,1]:
    xo = 'yo' if  outcome == 0 else 'k+'
    selection = y == outcome
    plt.plot(X.loc[selection, 0],X.loc[selection,1],xo, mec = 'k')
plt.xlim([25,100])
plt.ylim([25,100])

plt.xlabel('Exam 1 Score')
plt.ylabel('Exam 2 Score')
plt.title('Exam 1 & 2 and admission outcome')

contour = ax.contourf(xx1,xx2, probs, 100, cmap="RdBu",
                      vmin=0, vmax=1)
ax_c = f.colorbar(contour)
ax_c.set_label("$P(y = 1)$")
ax_c.set_ticks([0, .25, .5, .75, 1])

plt.contour(xx1, xx2, probs, [0.5], linewidths=1, colors='b', alpha = 0.3);

plt.plot(xx1[probs > 0.5], xx2[probs > 0.5],'.b', alpha = 0.3)

鏈接

txt中的DataFile

Octave中的PDF任務和解決方案

為了獲得相同的結果,您需要創建相同的測試條件。

明顯的區別是迭代次數。 Sklearn LogisticRegression分類器的默認迭代計數為100,而NG的示例代碼可運行400次迭代。 當然,那將給您與Nguyen的課程不同的結果。

我現在不確定Nguyen在練習中使用了哪個成本函數,但是我很確定它是交叉熵,而不是scikit learn LogisticRecression分類器的默認函數L2。

最后一點,在實現更高級別的解決方案(scikitlearn / tensorflow / keras)之前,您應該首先嘗試以純python實現它們,以了解它們的工作原理。 嘗試並制作更高級的軟件包為您工作將更加容易(並且更加有趣)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM