import numpy as np
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import kneighborsclassifier
iris = datasets.load_iris()
iris_x =iris.data
iris_y = iris.target
#print (iris_x[:5,:])
#print (iris_y)
x_train,x_test,y_train,y_test=train_test_split(iris_x,iris_y,random_state=4)
#print(y_train)
knn=kneighborsclassifier(n_neighbors=3)
knn.fit(x_train,y_train)
#y_pre=knn.predict(x_test)
print (knn.score(x_test,y_test))
沒有進行交叉驗證結果為:0.973684210526
"""
created on wed nov 9 15:47:35 2016
功能:交叉驗證(cross validation)
分類器:k鄰近
資料:鶯尾花
@author: haoming
"""import numpy as np
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import kneighborsclassifier
iris = datasets.load_iris()
iris_x =iris.data
iris_y = iris.target
from sklearn.cross_validation import cross_val_score
knn=kneighborsclassifier(n_neighbors=5)
scores=cross_val_score(knn,iris_x,iris_y,cv=5,scoring='accuracy')
'''交叉驗證將測試資料分為五組 cv = 5,最後輸出平均值mean()
'''print (scores)
print (scores.mean())
輸出結果:
[ 0.96666667 1. 0.93333333 0.96666667 1. ]
0.973333333333
以下是一段選擇k鄰近演算法引數k的方法
from sklearn import datasets
from sklearn.neighbors import kneighborsclassifier
from sklearn.cross_validation import cross_val_score
import matplotlib.pyplot as plt
iris = datasets.load_iris()
iris_x =iris.data
iris_y = iris.target
k_range=range(1,31)
k_score=
for k in k_range:
knn = kneighborsclassifier(n_neighbors=k)
scores = cross_val_score(knn,iris_x,iris_y,cv=10,scoring='accuracy')
# loss = cross_val_score(knn,iris_x,iris_y,cv=10,scoring='mean_squared_error')
plt.plot(k_range,k_score)
plt.xlabel('value of k for knn')
plt.ylabel('cross validation accuracy')
plt.show()
結果:
從圖中我們可以看出,選擇怎麼乙個k正確率比較高
這個是乙個knn回歸演算法的選擇引數**
from sklearn import datasets
from sklearn.neighbors import kneighborsclassifier
from sklearn.cross_validation import cross_val_score
import matplotlib.pyplot as plt
iris = datasets.load_iris()
iris_x =iris.data
iris_y = iris.target
k_range=range(1,31)
k_score=
for k in k_range:
knn = kneighborsclassifier(n_neighbors=k)
# scores = cross_val_score(knn,iris_x,iris_y,cv=10,scoring='accuracy')
loss = -cross_val_score(knn,iris_x,iris_y,cv=10,scoring='mean_squared_error')
'''判斷回歸的誤差(mean_squared_error)
'''
plt.plot(k_range,k_score)
plt.xlabel('value of k for knn')
plt.ylabel('cross validation accuracy')
plt.show()
執行結果:
scikit learning 線性回歸學習
多項式回歸損失函式為均方誤差,迭代計算方式為梯度下降 在scikit learning中,多項式回歸由sklearn.linear model.linearregression。當特徵不足導致欠擬合時,可以採用特徵組合的方式產生多項式特徵,在scikit learning中,用sklearn.pre...
矩形面積交
時間限制 1.0s 記憶體限制 512.0mb 問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個...
矩形面積交
問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...