天天看點

python畫logistic拟合曲線_使用matplotlib在Python中繪制曲線決策邊界

我是使用python進行機器學習的新手。我設法使用matplotlib繪制了邏輯回歸的直線決策邊界。但是,在繪制曲線時,我很難了解使用某些樣本資料集過度拟合的情況。使用matplotlib在Python中繪制曲線決策邊界

我想建立一個邏輯回歸模型使用正則化和使用正則化來控制過度拟合我的資料集。

我知道sklearn庫的,但是我甯願寫代碼分開

我工作的測試資料樣本下面給出:

x=np.matrix('2,300;4,600;7,300;5,500;5,400;6,400;3,400;4,500;1,200;3,400;7,700;3,550;2.5,650')

y=np.matrix('0;1;1;1;0;1;0;0;0;0;1;1;0')

我期待的決策邊界中給出如下圖:

python畫logistic拟合曲線_使用matplotlib在Python中繪制曲線決策邊界

任何幫助,将不勝感激。

# plot of x 2D

plt.figure()

pos=np.where(y==1)

neg=np.where(y==0)

plt.plot(X[pos[0],0], X[pos[0],1], 'ro')

plt.plot(X[neg[0],0], X[neg[0],1], 'bo')

plt.xlim([min(X[:,0]),max(X[:,0])])

plt.ylim([min(X[:,1]),max(X[:,1])])

plt.show()

# plot of the decision boundary

plt.figure()

pos=np.where(y==1)

neg=np.where(y==0)

plt.plot(x[pos[0],1], x[pos[0],2], 'ro')

plt.plot(x[neg[0],1], x[neg[0],2], 'bo')

plt.xlim([x[:, 1].min()-2 , x[:, 1].max()+2])

plt.ylim([x[:, 2].min()-2 , x[:, 2].max()+2])

plot_x = [min(x[:,1])-2, max(x[:,1])+2] # Takes a lerger decision line

plot_y = (-1/theta_NM[2])*(theta_NM[1]*plot_x +theta_NM[0])

plt.plot(plot_x, plot_y)

我的決策邊界看起來是這樣的:

python畫logistic拟合曲線_使用matplotlib在Python中繪制曲線決策邊界

在理想的情況下上面的決策邊界是好的

我可以使用下面的代碼繪制一條直線決策邊界但我想繪制一個曲線決策邊界,它能非常好地适合我的訓練資料,但會過多地适合我的測試資料。類似于第一張圖所示的東西

2015-05-04

Sam

+0

什麼是你的問題/問題?你有什麼嘗試? –

+0

嗨julien,我試圖建立一個曲線決定邊界,我試圖用matplotlib繪制一條直線。但我不知道如何繪制matplotlib中的曲線。我嘗試了曲線的多項式特征。我對我的問題做了一些更新。請看看..謝謝:) –

+0

你不能簡單地使用藍點的最大包絡線和紅點的最小包絡線之間的平均值嗎? (雖然不确定在原始圖中丢失紅點(x <3)和丢失藍點(x> 5))做什麼 –