1. 程式人生 > >機器學習sklearn中的train_test_split()函式

機器學習sklearn中的train_test_split()函式

使用train_test_split函式可以將原始資料集按照一定比例劃分訓練集和測試集對模型進行訓練

一、舉例


import numpy as np #科學計算庫

from sklearn.model_selection import train_test_split #train_test_split函式

x = np.arange(15).reshape(-1, 3) #生成5行3列的一個矩陣

>>x

array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14]])

y = np.arange(5) #5個數的向量

>>y

array([0, 1, 2, 3, 4])

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=1)

>>x_train

array([[ 3,  4,  5],
       [12, 13, 14],
       [ 0,  1,  2],
       [ 9, 10, 11]])

>>x_test

array([[6, 7, 8]])

>>y_train

array([1, 4, 0, 3])

>>y_test

array([2])

二 說明

x,y是原始的資料集。x_train,y_train 是原始資料集劃分出來作為訓練模型的,fit模型的時候用。
x_test,y_test 這部分的資料不參與模型的訓練,而是用於評價訓練出來的模型好壞,score評分的時候用。
test_size=0.2 測試集的劃分比例
random_state=1 隨機種子,如果隨機種子一樣,則隨機生成的資料集是相同的


三 使用KNN

from sklearn.neighbors import KNeighborsClassifier
knn_clf = KNeighborsClassifier()
knn_clf.fit(x_train, y_train) #用fit訓練模型,x_train, y_train是第一步劃分的資料集。

knn_clf.score(x_test, y_test) #score測試模型,x_test, y_test是第一步劃分得到的