**實現(基於邏輯回歸演算法):
1結果:#-*- coding: utf-8 -*-
2"""
3created on sat sep 1 11:54:48 201845
@author: zhen67
交叉驗證
8"""
9import
numpy as np
10from sklearn import
datasets
11from sklearn.linear_model import
logisticregression
12from sklearn.model_selection import
gridsearchcv
13import
matplotlib.pyplot as plt
1415 iris =datasets.load_iris()
16 x = iris['
data
'][:, 3:]
17 y = iris['
target']
1819
20def report(results, n_top=3):
21for i in range(1, n_top + 1):
22 candidates = np.flatnonzero(results['
rank_test_score
'] ==i)
23for candidate in
candidates:
24print("
model with rank:
".format(i))
25print("
mean validation score: (std: )
".format(
26 results['
mean_test_score
'][candidate],
27 results['
std_test_score
'][candidate]))
28print("
parameters:
".format(results['
params
'][candidate]))
29print("")30
3132 param_grid =
3334 log_reg = logisticregression(multi_class='
ovr', solver='
sag')35
#採用3折交叉驗證
36 grid_search = gridsearchcv(log_reg, param_grid=param_grid, cv=3)
37grid_search.fit(x, y)
3839
report(grid_search.cv_results_)
4041 x_new = np.linspace(0, 3, 1000).reshape(-1, 1)
42 y_proba =grid_search.predict_proba(x_new)
43 y_hat =grid_search.predict(x_new)
4445 plt.plot(x_new, y_proba[:, 2], '
g-', label='
iris-virginica')
46 plt.plot(x_new, y_proba[:, 1], '
r-', label='
iris-versicolour')
47 plt.plot(x_new, y_proba[:, 0], '
b-', label='
iris-setosa')
48plt.show()
4950
print(grid_search.predict([[1.7], [1.5]]))
總結:使用交叉驗證可以實現**自動對設定範圍引數的模型進行分別訓練,最後選出效果最好的引數所訓練出的模型進行**,以求達到最好的**效果!
crossvalind Matlab 交叉驗證
matlab 交叉驗證 rel noopener noreferrer crossvalind matlab 交叉驗證 lujingyang1029 今天用到crossvalind.這個適用於crossvalidation。中文應該叫做交叉驗證。我主要想說說這個函式怎麼用的。舉個簡單的例子 p tr...
Keras基礎自學四( sklearn交叉驗證)
from keras.models import sequential from keras.layers import dense import numpy as np from sklearn.model selection import cross val score from sklearn...
交叉學習驗證 西瓜書 機器學習必知必會 交叉驗證
當我們根據資料訓練出乙個機器學習模型時,我們希望它在新的資料上也保持較高的準備率,這就需要我們對學習到的不同模型有乙個模型評估準則。為了評估模型的泛化效能 指模型在未知資料上的 能力 防止模型落入 過擬合 的陷進。我們人為地將原始資料劃分為訓練集和測試集,前者用於訓練模型,後者用於評估模型的泛化效能...