Sklearn 本身就有很多數(shù)據(jù)庫,可以用來練習(xí)。 以 Iris 的數(shù)據(jù)為例,這種花有四個屬性,花瓣的長寬,莖的長寬,根據(jù)這些屬性把花分為三類。
用分類器 把四種類型的花分開
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
創(chuàng)建數(shù)據(jù)
加載iris 的數(shù)據(jù) 把屬性存在X.類別標(biāo)簽存在y
iris = datasets.load_iris()
iris_X=iris.data
iris_y = iris.target
觀察數(shù)據(jù)集,x有四個屬性 y 有0, 1,2 三類
print(iris_X[:2,:])
print(iris_y)
把數(shù)據(jù)集分為訓(xùn)練集 和測試集 ,其中test_size = 0.3 ,即 測試集占總數(shù)據(jù)的30%
X_train,X_test,y_train,y_test =train_test_split(iris_X,iris_y,test_size = 0.3)
print(y_train)
導(dǎo)入模塊
from __future__import print_function
from sklearn import datasets
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
導(dǎo)入數(shù)據(jù)- 訓(xùn)練模型
用 datasets.load_boston() 的形式 加載數(shù)據(jù),并給 X 和 y 賦值
loaded_data =datasets.load_boston()
data_X =loaded_data.data
data_y = loaded_data.target
?定義模型
可以直接用默認(rèn)值去建立 model,默認(rèn)值也不錯,也可以自己改變參數(shù)使模型更好,然后用training data 去訓(xùn)練模型
model = LinearRegression()
model.fit(data_X,data_y)
打印出預(yù)測值,這里用X的前四個來預(yù)測 同時打印真實值,作為對比
print(model.predict(data_X[:4,:]))
print(data_y[:4])
創(chuàng)建虛擬數(shù)據(jù)-可視化
用函數(shù)來建立 100個sample? 有一個feature 喝一個target 這樣比較方便可視化
X,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=10)
用scatter的形式來輸出結(jié)果。
plt.scatter(X,y)
plt.show()
noise越大的話,點就會越來越離散,例如noise由 10 變?yōu)?50.
X,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=50)
plt.scatter(X,y)
plt.show()