1、为什么要做数据分割;
做数据分割可以验证自己做的模型是否正确,分割是将数据 随机分成(举例:训练数据80%、测试数据20%),一部分数据用来训练模型,一部分数据用来验证模型的正确性;
备注:分割数据前,要确实我们已经对数据进行了明确
2、数据分割,上代码:(主要黑色加粗部分)
import numpy as np #矩阵
import matplotlib.pyplot as plt #数据展示、可视化
import pandas as pd #数据预处理
#import dataset
datasets = pd.read_csv('Data.csv')
#missing data 丢失数据处理 1、去最大值 最小值,2、平均数 3、删除
X = datasets.iloc[:,:-1].values #取出独立变量
Y = datasets.iloc[:,3].values
#数据预处理,补充缺失数据
from sklearn.preprocessing import Imputer
#mean 缺失的用平均数填充
#怎么处理数据
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
#处理哪里的数据
imputer = imputer.fit( X[:, 1:3])
X[:, 1:3] = imputer.transform( X[:, 1:3])
#数据明确 (文字转数字 n-1 “虚拟变量”,系统的底层都是处理数字的数值,规范0到1之间)
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
#把这个库转成物件类用
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder()
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
#数据分割 1、验证模型做得对不对 (一块用了训练模型,一块数据用来验证模型的正确性)
from sklearn.cross_validation import train_test_split
X_train, X_text, Y_train, Y_test = train_test_split(X,Y,test_size = 0.2,random_state = 0)
3、在控制台打印查看分割后的数据
4、R语言分割数据
(1)、首先需要导入caTools 包,如果勾选里面没有,可以点击Install搜索下载对应的包
(2)、上代码进行分割
library(caTools)
#set.seed(123)里面有数据就是随机处理
set.seed(123)
split = sample.split(datasets$Purchased, SplitRatio = 0.8)#这个地方要注意和python相反
training_set = subset(datasets, split == TRUE) #80%
test_set = subset(datasets, split == FALSE) #20%
(3)查看分割之后的数据
test_set的数据
Country Age Salary Purchased
1 1 44 72000 1
10 1 37 67000 2
test_set的数据
Country Age Salary Purchased
2 2 27.00000 48000.00 2
3 3 30.00000 54000.00 1
4 2 38.00000 61000.00 1
5 3 40.00000 63777.78 2
6 1 35.00000 58000.00 2
7 2 38.77778 52000.00 1
8 1 48.00000 79000.00 2
9 3 50.00000 83000.00 1
datasets数据
> datasets
Country Age Salary Purchased
1 1 44.00000 72000.00 1
2 2 27.00000 48000.00 2
3 3 30.00000 54000.00 1
4 2 38.00000 61000.00 1
5 3 40.00000 63777.78 2
6 1 35.00000 58000.00 2
7 2 38.77778 52000.00 1
8 1 48.00000 79000.00 2
9 3 50.00000 83000.00 1
10 1 37.00000 67000.00 2