Python金融数据挖掘与分析实战
上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]])