python划分训练集和测试集_python机器学习:如何划分训练集和测试集
今天用一個(gè)實(shí)例給大家寫寫在機(jī)器學(xué)習(xí)中如何進(jìn)行訓(xùn)練集和測(cè)試集的劃分。
實(shí)例操練
首先導(dǎo)入今天要使用的數(shù)據(jù)集
import pandas as pddf = pd.read_csv("carprices.csv")df.head()
這是一個(gè)汽車銷售的數(shù)據(jù)集,里面的變量包括汽車?yán)锍獭⑹褂媚晗蕖N售價(jià)格。我們今天要做的就是用汽車?yán)锍獭⑹褂媚晗迊?lái)建立一個(gè)預(yù)測(cè)銷售價(jià)格的機(jī)器學(xué)習(xí)模型。
首先,我們畫圖看一看數(shù)據(jù)關(guān)系
import matplotlib.pyplot as pltplt.scatter(df['Mileage'],df['Sell Price($)'])plt.scatter(df['Age(yrs)'],df['Sell Price($)'])
運(yùn)行以上代碼可以出2個(gè)點(diǎn)圖,分別展示汽車?yán)锍毯弯N售價(jià)格的關(guān)系和使用年限和銷售價(jià)格的關(guān)系。
使用年限和銷售價(jià)格的關(guān)系散點(diǎn)圖
汽車?yán)锍毯弯N售價(jià)格的關(guān)系散點(diǎn)圖
通過(guò)兩個(gè)散點(diǎn)圖,我們可以發(fā)現(xiàn)使用線性回歸模型進(jìn)行建模還是比較好的方法,現(xiàn)在我們就要進(jìn)行訓(xùn)練集和測(cè)試集的劃分了
訓(xùn)練集 用來(lái)訓(xùn)練模型,估計(jì)參數(shù)
測(cè)試集 用來(lái)測(cè)試和評(píng)估訓(xùn)練出來(lái)的模型好壞,不能用于訓(xùn)練模型
劃分?jǐn)?shù)據(jù)集實(shí)操
首先我們要指定數(shù)據(jù)和數(shù)據(jù)標(biāo)簽
X = df[['Mileage','Age(yrs)']]y = df['Sell Price($)']
在本例中,數(shù)據(jù)集為汽車?yán)锍毯褪褂媚晗迾?gòu)成的數(shù)據(jù)框,標(biāo)簽為汽車價(jià)格。
然后我們用train_test_split方法分割數(shù)據(jù)為訓(xùn)練集和測(cè)試集,代碼如下
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
講解一下train_test_split的參數(shù):
train_test_split的基本形式如下
X_train,X_test, y_train, y_test =sklearn.model_selection.train_test_split(train_data,train_target,test_size=0.4, random_state=0,stratify=y_train)
其中
train_data:所要?jiǎng)澐值臉颖咎卣骷?/p>
train_target:所要?jiǎng)澐值臉颖窘Y(jié)果
test_size:樣本占比,如果是整數(shù)的話就是樣本的數(shù)量
random_state:是隨機(jī)數(shù)的種子,在需要重復(fù)試驗(yàn)的時(shí)候,保證得到一組一樣的隨機(jī)數(shù)
stratify是為了保持split前類的分布,通常在類分布不平衡的情況下會(huì)用到stratify
在我們的例子中,我們只給出了test_size=0.3,所以我們按照7:3劃分得到了訓(xùn)練集和測(cè)試集,而且這個(gè)劃分是隨機(jī)的。我們可以看一看訓(xùn)練數(shù)據(jù)長(zhǎng)啥樣
X_trainy_train
以上代碼可以分別輸出訓(xùn)練集的數(shù)據(jù)和標(biāo)簽。
建立線性回歸模型
from sklearn.linear_model import LinearRegressionclf = LinearRegression()clf.fit(X_train, y_train)
通過(guò)以上代碼我們便建立了回歸模型,運(yùn)用此模型我們可以進(jìn)行對(duì)X_test的預(yù)測(cè)
clf.predict(X_test)
然后,我們將模型預(yù)測(cè)值和實(shí)際的y_test值進(jìn)行對(duì)比可以得到模型正確率。
clf.score(X_test, y_test)
可以看到,我們訓(xùn)練的線性回歸模型的正確率達(dá)到90%多。
總結(jié)
以上是生活随笔為你收集整理的python划分训练集和测试集_python机器学习:如何划分训练集和测试集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Google 思源黑体:改变字体界的未来
- 下一篇: python怎么解微分方程组_pytho