使用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列的一个矩阵
>>xarray([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]])
y = np.arange(5) #5个数的向量
>>yarray([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_trainarray([[ 3, 4, 5],
[12, 13, 14],
[ 0, 1, 2],
[ 9, 10, 11]])
>>x_test
array([[6, 7, 8]])
>>y_trainarray([1, 4, 0, 3])
>>y_testarray([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是第一步划分得到的