機器學習入門 交叉驗證,網格搜尋

2022-05-24 07:45:06 字數 1545 閱讀 8525

#@author : 楊曉

#@file : cv_demo.py

#@software: pycharm

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split,gridsearchcv

from sklearn.preprocessing import standardscaler

from sklearn.neighbors import kneighborsclassifier

# 1、獲取資料

iris = load_iris()

# 2、資料處理

x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.2,random_state=222)

# 3、特徵工程

# 3.1 例項轉化器

transfer = standardscaler()

# 3.2呼叫fit_transform

x_train = transfer.fit_transform(x_train)

x_test = transfer.transform(x_test)

# 4、機器學習

# 4.1 例項化預估器類

estimator = kneighborsclassifier()

# 4.2 模型選擇與調優——網格搜尋和交叉驗證

param_dict =

estimator = gridsearchcv(estimator,param_grid=param_dict,cv=5)

# 4.3 訓練模型

estimator.fit(x_train,y_train)

# 5、模型評估

y_predict = estimator.predict(x_test)

print("**結果為:\n",y_predict)

print("對比真實值和**值:\n",y_predict == y_test)

score = estimator.score(x_test,y_test)

print("準確率為:\n",score)

print("在交叉驗證中驗證的最好結果:\n", estimator.best_score_)

print("最好的引數模型:\n", estimator.best_estimator_)

print("每次交叉驗證後的準確率結果:\n", estimator.cv_results_)

交叉驗證與網格搜尋

交叉驗證與網格搜尋是機器學習中的兩個非常重要且基本的概念,但是這兩個概念在剛入門的時候並不是非常容易理解與掌握,自己開始學習的時候,對這兩個概念理解的並不到位,現在寫一篇關於交叉驗證與網格搜尋的文章,將這兩個基本的概念做一下梳理。網格搜尋 grid search 名字非常大氣,但是用簡答的話來說就是...

網格搜尋和交叉驗證

在介紹網格搜尋和交叉驗證以前先要介紹下什麼是機器學習的超引數。我們常說的機器學習的引數指的是和特徵相關的係數,超引數指的是對於模型的整體規劃具有重要意義的指標 例如支援向量機中的乘法因子c 用於權衡經驗風險和模型複雜度 當支援向量機核函式是為徑向基rbf核函式,對應的鐘型函式的寬度gamma就是核函...

網格搜尋與交叉驗證

一.網格搜尋驗證 sklearn.model selection.gridsearchcv estimator,param grid,scoring none,fit params none,n jobs 1,iid true,refit true,cv none,verbose 0,pre dis...