在对数据进行预测的时候,有必要对数据进行分类
就是将数据分类成训练集和测试集,这样是为达到更好的预测效果
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
在分类时,对同一组数据,一般情况下,训练集所占的比重一般为0.2或者0.25
0指的是测试集没有数据的,1指的是全部都是测试集
随机数生成的方式我们置为0,得到的是一样的测试集和训练集
对数据进行拟合的时候,一定要注意过度拟合的情况:对训练集的预测好,对预测集的预测不好。
为了避免这样的情况发生,采取 特征缩放 的方法
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler() #类里面的对象
X_train = sc_X.fit_transform(X_train) #拟合以后再转换
X_test = sc_X.transform(X_test) #不需要再拟合 y是代表某类 不需要特征缩放
可以清晰地看到,所有的数据已经处于同一个数量级中了
这里呢,给出数据处理的模板,方便直接套用
#coding=utf-8
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset=pd.read_csv('Data.csv')
X=dataset.iloc[:,:-1].values
y=dataset.iloc[:,3].values
''' 训练集和测试集'''
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
"""
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
"""