優達(Udacity) 機器學習基礎 交叉驗證

2021-08-11 06:38:07 字數 1938 閱讀 6821

>>> 

import numpy as np

>>>

from sklearn.model_selection import train_test_split

>>>

from sklearn import datasets

>>>

from sklearn import svm

>>> iris = datasets.load_iris()

>>> iris.data.shape, iris.target.shape

((150, 4), (150,))

#將資料集拆分為訓練和測試集

gridsearchcv 用於系統地遍歷多種引數組合,通過交叉驗證確定最佳效果引數。它的好處是,只需增加幾行**,就能遍歷多種組合。

下面是來自 sklearn 文件 的乙個示例:

parameters = 

svr = svm.svc()

clf = grid_search.gridsearchcv(svr, parameters)

clf.fit(iris.data, iris.target)

讓我們逐行進行說明。

這裡寫**片
parameters =
引數字典以及他們可取的值。在這種情況下,他們在嘗試找到 kernel(可能的選擇為 『linear』 和 『rbf』 )和 c(可能的選擇為1和10)的最佳組合。

這時,會自動生成乙個不同(kernel、c)引數值組成的「網格」:

各組合均用於訓練 svm,並使用交叉驗證對表現進行評估。

svr =svm.svc()
這與建立分類器有點類似。但是請注意,「clf」 到下一行才會生成—這兒僅僅是在說採用哪種演算法。

另一種思考方法是,「分類器」在這種情況下不僅僅是乙個演算法,而是演算法加引數值。請注意,這裡不需對 kernel 或 c 做各種嘗試;下一行才處理這個問題。

clf =grid_search.gridsearchcv(svr, parameters)
這是第乙個不可思議之處,分類器建立好了。 我們傳達演算法 (svr) 和引數 (parameters) 字典來嘗試,它生成乙個網格的引數組合進行嘗試。

clf.fit(iris.data, iris.target)
第二個不可思議之處。

擬合函式現在嘗試了所有的引數組合,並返回乙個合適的分類器,自動調整至最佳引數組合。現在您便可通過clf.best_params_來獲得引數值。

優達(Udacity) 機器學習基礎 誤差原因

資料足夠,模型不夠複雜 過度簡化 欠擬合 結果對於任何給定的測試樣本會出現多大的變化 對訓練集高度敏感 過擬合 overfitting 可以利用sklearn中的學習曲線來辨別模型表現的好壞。引入模組 from sklearn.model selection import learning curv...

優達 Udacity 誤差原因

1.誤差原因 偏差 因為模型無法表達基本資料的複雜度 模型過度簡化造成的 欠擬合 方差 用於測試 結果對任意給定樣本資料的變化,產生原因為 模型對訓練它的有效資料過度敏感 過擬合,無法泛化模型 可以通過訓練更多的資料降低方差,或者降低模型的複雜度。4.from sklearn.model selec...

Udacity 機器學習入門 特徵縮放

因為在這裡,體重完全主導了結果,身高的影響微乎其微。而我們應該盡量讓兩者對結果有同等重要的影響。這就引來了特徵縮放 把特徵都限制在 0,1 之間。解釋 特點 縮放後的特徵值總是在0和1之間 def featurescaling arr import numpy as np arr np.array ...