通俗的講就是將樣本均分為幾等份,拿出某一(幾)份作為測試樣本,剩下的作為訓練樣本,去**得到相應指標(準確率,召回率,f1等),再抽取另乙份(幾份)作為測試樣本,剩下的作為訓練樣本,去**得到相應指標(準確率,召回率,f1等) ,使得每乙份樣本都參與到測試集中,最終返回乙個指標列表。
1、交叉驗證用於評估模型的**效能,尤其是訓練好的模型在新資料上的表現,可以在一定程度上減小過擬合。
2、還可以從有限的資料中獲取盡可能多的有效資訊。
提取碼: qb2a
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
import sklearn.svm as svm
import numpy as np
import sklearn.metrics as sm
import sklearn.model_selection as ms
import pandas as pd
from sklearn.tree import decisiontreeclassifier
df =pd.read_csv(
'multiple1.txt'
, sep=
",", encoding=
"utf-8"
, names=[1
,2,3
])x = df[[1
,2]]
y = df[3]
train_x, test_x, train_y, test_y = ms.train_test_split(x,y, test_size=
0.2, random_state=7)
model = decisiontreeclassifier(
)model.fit(train_x, train_y)
pred_y = model.predict(test_x)
# todo:關於這些評估指標的解釋前面部落格有提到
#cv代表交叉驗證的次數
zc_score = ms.cross_val_score(model, x,y, cv=
5, scoring=
"precision_weighted"
)#查準率
zh_score = ms.cross_val_score(model, x,y, cv=
5, scoring=
"recall_weighted"
)#召回率
f1_score = ms.cross_val_score(model, x,y, cv=
5, scoring=
"f1_weighted"
)#f1得分
print
(f"查準率為:"
)print
(f"召回率為:"
)print
(f"f1分數為:"
)
機器學習筆記之交叉驗證
在評估演算法的效果時,為什麼要進行交叉驗證呢,檢視了官方說明文件後,對交叉驗證做了如下的描述 在了解交叉交叉驗證之前,我們先了解如下知識 過擬合 是指所建立的機器學習模型在訓練樣本中表現得過於優越,導致在驗證資料集以及測試資料集中表現不佳。為了避免這種情況,通常的做法是執行 監督 機器學習實驗時將部...
機器學習 交叉驗證
假設我們需要從某些候選模型中選擇最適合某個學習問題的模型,我們該如何選擇?以多元回歸模型為例 我們假設模型集合為有限集 假設樣本集為s,根據經驗風險最小化原則 erm 可能會使用這樣的演算法 1.在s上訓練每個模型 2.選擇訓練誤差最小的假設函式,即為我們需要的函式。然而,這樣的演算法實際上並不有效...
機器學習 交叉驗證
交叉驗證是最好的測試方法 乙個問題叫做交叉驗證,是指假設要將乙份資料拆分成訓練集和測試集,這個時候怎麼評估出它的誤差?交叉驗證是把集合拆成五份,取四份做訓練集 乙份做測試集,並且每次選擇不同的那乙份做測試級,最後測出五個結果再做平均,這被認為是最好的測試方法。交叉驗證確實是乙個還不錯的驗證的方法,但...