Sklearn 本身就有很多數(shù)據(jù)庫(kù)搏嗡,可以用來(lái)練習(xí)源请。 以 Iris 的數(shù)據(jù)為例,這種花有四個(gè)屬性彻况,花瓣的長(zhǎng)寬谁尸,莖的長(zhǎng)寬,根據(jù)這些屬性把花分為三類纽甘。
用分類器 把四種類型的花分開(kāi)
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有四個(gè)屬性 y 有0, 1悍赢,2 三類
print(iris_X[:2,:])
print(iris_y)
把數(shù)據(jù)集分為訓(xùn)練集 和測(cè)試集 决瞳,其中test_size = 0.3 货徙,即 測(cè)試集占總數(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)值也不錯(cuò)皮胡,也可以自己改變參數(shù)使模型更好痴颊,然后用training data 去訓(xùn)練模型
model = LinearRegression()
model.fit(data_X,data_y)
打印出預(yù)測(cè)值,這里用X的前四個(gè)來(lái)預(yù)測(cè) 同時(shí)打印真實(shí)值屡贺,作為對(duì)比
print(model.predict(data_X[:4,:]))
print(data_y[:4])
創(chuàng)建虛擬數(shù)據(jù)-可視化
用函數(shù)來(lái)建立 100個(gè)sample? 有一個(gè)feature 喝一個(gè)target 這樣比較方便可視化
X,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=10)
用scatter的形式來(lái)輸出結(jié)果蠢棱。
plt.scatter(X,y)
plt.show()
noise越大的話,點(diǎn)就會(huì)越來(lái)越離散甩栈,例如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()