繪製學習曲線,以確定模型的學習狀況
from sklearn.svm import linearsvc
from sklearn.learning_curve import learning_curve
# 繪製學習曲線,以確定模型的狀況
defplot_learning_curve
(estimator, title, x, y,ylim=none, cv=none,
train_sizes=np.linspace(.1, 1.0, 5)):
''' 畫出data在某模型上的learning curve.
引數解釋
----------
estimator : 你用的分類器。
title : **的標題。
x : 輸入的feature,numpy型別
y : 輸入的target vector
ylim : tuple格式的(ymin, ymax), 設定影象中縱座標的最低點和最高點
cv : 做cross-validation的時候,資料分成的份數,其中乙份作為cv集,其餘n-1份作為training(預設為3份)
'''plt.figure()
train_sizes, train_scores, test_scores = learning_curve(
estimator, x, y, cv=5, n_jobs=1, train_sizes=train_sizes)
train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1)
plt.fill_between(train_sizes, train_scores_mean - train_scores_std,
train_scores_mean + train_scores_std, alpha=0.1,
color="r")
plt.fill_between(train_sizes, test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std, alpha=0.1, color="g")
plt.plot(train_sizes, train_scores_mean, 'o-', color="r",
label="training score")
plt.plot(train_sizes, test_scores_mean, 'o-', color="g",
label="cross-validation score")
plt.xlabel("training examples")
plt.ylabel("score")
plt.legend(loc="best")
plt.grid("on")
if ylim:
plt.ylim(ylim)
plt.title(title)
plt.show()
# 少樣本的情況情況下繪出學習曲線
plot_learning_curve(linearsvc(c=10.0), "linearsvc(c=10.0)",
x, y, ylim=(0.8, 1.01),
train_sizes=np.linspace(.05, 0.2, 5))
機器學習筆記 學習曲線的繪製
重點總結 來看看在神經網路上的應用 如何你要檢查演算法執行是否正常或者希望優化演算法的表現那麼就需要一款工具來實現,學習曲線就是乙個很好的工具。同樣的,使用學習曲線可以檢查出演算法是處於偏差問題還是方差問題,或者是二者皆有!先來看看資料樣本數量與誤差之間的關係,通過下圖看一下 在右側,可以看到,當樣...
學習曲線的繪製(個人自定義原始碼)
隨著訓練樣本的增多,模型在訓練集和測試集的表現趨於一致。根據訓練集合測試集的表現可以判斷模型是過擬合和欠擬合。查了很多關於sklearn的learning curve的資料,沒有找到其內部原理的文章,因此根據學習曲線的概念手動編寫 1 求出訓練集的大小t len x train 2 訓練集是乙個長度...
機器學習中學習曲線與模型複雜化
學習曲線 讓我們根據模型通過視覺化圖形從資料中學習的能力來 偏差與方差之間的關係。機器學習中的學習曲線是一種視覺化圖形,能根據一系列訓練例項中的訓練和測試資料比較模型的指標效能。在檢視資料與誤差之間的關係時,我們通常會看到,隨著訓練點數量的增加,誤差會趨於下降。由於我們嘗試構建從經驗中學習的模型,因...