1

我的模型拋出了學習曲線,如下所示。這些好嗎?我是一名初學者,在整個互聯網上我都看到,隨着訓練實例的增加,訓練分數應該會下降然後收斂。但是這裏的訓練分數正在增加,然後收斂。因此,我想知道這是否表示我的代碼中有錯誤/輸入有問題?關於學習曲線的具體形狀

好吧我想通了我的代碼有什麼問題。

train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5) 

我還沒有輸入Logistic迴歸的正則化參數。

但現在,

train_sizes , train_accuracy , cv_accuracy = lc(linear_model.LogisticRegression(C=1000,solver='lbfgs',penalty='l2',multi_class='ovr'),trainData,multiclass_response_train,train_sizes=np.array([0.1,0.33,0.5,0.66,1.0]),cv=5) 

學習曲線看起來沒事。

enter image description here 有人可以告訴我爲什麼這樣嗎?即使用默認的註冊期限,訓練分數增加,而註冊分數降低?

數據詳細信息:10課。圖片大小不一。 (數字分類 - 街景數字)

+0

我懷疑你的問題與你正在使用的數據有關。你能描述你的數據嗎?多少班?每班多少人?我可以想象,也許你的數據分裂的方式很難學習一個好的模型來區分所有的類。 – NBartley

+0

@NBartley請檢查編輯後的問題。謝謝! – MLnoob

+0

您是否多次運行此代碼?每次都有這種情況嗎? – NBartley

回答

0

從Alex的回答開始,看起來你的模型的默認正則化參數有點不足,因爲當你放寬正則化時,你會看到'更合適'的學習曲線。無論你在一個不適合的模型中拋出多少例子都沒有關係。

至於你擔心爲什麼訓練分數在第一種情況下增加而不是在減少 - 這可能是你使用的多類數據的結果。用較少的訓練樣例,每個類的圖像數量較少(因爲lc試圖在cv的每個摺疊中保持相同的類分佈),所以通過正則化(如果調用C = 1正則化,那就是),它可能難以讓你的模型準確地猜出一些類。

2

您需要更精確地瞭解您的指標。這裏使用了什麼指標?

損失一般手段:越低越好,而分數通常意味着:越高越好。

這也意味着,您的情節的解釋取決於在訓練和交叉驗證過程中使用的指標。

+0

你能檢查編輯的問題嗎?謝謝! – MLnoob

1

看一看SciPy的的相關網頁: http://scikit-learn.org/stable/modules/learning_curve.html 比分是一些典型的措施,需要最大化(ROCAUC,準確,...)。直觀地說,你可以預期你看到的訓練樣例越多,你的模型就越好,因此得分越高。然而,你應該記住一些有關過度配合和不足的細微之處。