機器學習之資料明確

weixin_34402408發表於2017-10-26

1、為什麼要資料明確?

當資料是文字(中文、英文的文字,非數值)的時候,我們需要進行資料明確,因為系統的底層是處理數字的數值,需要規範到0到1之間


1327433-654bd706f227277d.png
資料明確

2、轉換之後的資料成為“虛擬變數”(n-1)

python程式碼:

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

#把這個庫轉成物件類用

labelencodee_X = LabelEncoder()

X[:,0] = labelencoder_X.fit_transform(X[:, 0])

onehotencoder = OneHotEncoder()

X = onehotencoder.fit_transform(X).toarray

R語言資料明確之後的資料:

array([[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,

0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.],

[ 0.,  0.,  1.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,

0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],

[ 0.,  1.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,

0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],

[ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,

0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.],

[ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,

0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.],

[ 1.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,

0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.],

[ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,

1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],

[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,

0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.],

[ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,

0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],

[ 1.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,

0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.]])

R語言程式碼:

datasets = read.csv('Data.csv')

#missData 缺失資料填充

datasets$Age = ifelse(is.na(datasets$Age),ave(datasets$Age,FUN = function(x) mean(x, na.rm = TRUE)),

datasets$Age)

datasets$Salary = ifelse(is.na(datasets$Salary),ave(datasets$Salary,FUN = function(x) mean(x, na.rm = TRUE)),

datasets$Salary)

#資料明確

datasets$Country = factor(datasets$Country,levels = c('France','Spain','Germany'), labels = c(1,2,3))

R語言資料明確之後的資料


1327433-7d55eafaccb649d4.png

相關文章