上QQ阅读APP看书,第一时间看更新
3.2.5 数据分割
模型是基于已有的数据集建立的,但通常要将训练好的模型应用在其他数据中进行分析,所以需要在应用模型前对模型进行验证。这时我们就需要对数据进行分割,通常将数据分为训练数据集和测试数据集,使用训练数据集训练模型,之后通过模型分析它未曾见过的数据以验证模型的效力和可靠性,因为之后模型应用中都将面对未曾见过的数据。当然,有的时候我们也会进行交叉验证,所以这一步通常要根据之后建立的模型适配。
结合Income_n_onlineshopping案例,使用LabelEncoder方法进行转换后继续。
注意,这里train_test_split()函数默认shuffle=True,也就是说,在分割数据前会将数据随机打乱。当我们处理本身带有顺序的数据时需要将shuffle设为False,比如时间序列数据。
from sklearn.model_selection import train_test_split # 将数据集分割成训练集和测试集 # 将数据集分为X训练、Y训练、X测试、Y测试 # 在test_size中设置训练集占整体数据的比例,比如设置为0.2时,80%的数据将被分为训练数据, # 20%的数据将被分为测试数据 X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_ state=0) X_train # 检查被随机抽出的8个训练自变量X样本 array([[ 2, 36, 81160], [ 1, 33, 88440], [ 0, 42, 63360], [ 0, 40, 56160], [ 1, 59, 113760], [ 0, 53, 73200], [ 1, 39, 95040], [ 1, 41, 69600]])