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