机器学习之数据规范化

1、为什么要做数据规范:

是为了减少数据在可视化是的距离差异:(如:将数据 X1薪水:4023、5000、8000 X2年龄:40、33、30,将这些数据按照一定的比例尽量处理到-1跟1之间),这个句话可能只有我自己能理解,


数据规范化草图,比如age 20,30 薪资100234,343424242,两列之间偏差很大

2、用Python处理数据规范化

#数据分割 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)

#数据规范化(减少数据之间的差异,如 4000 100 200 ,-1到1之间,按照一定比例缩放)

from sklearn.preprocessing import StandardScaler

sc_X = StandardScaler()

X_train = sc_X.fit_transform(X_train)

X_text = sc_X.fit_transform(X_text)

3、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))

datasets$Purchased = factor(datasets$Purchased,levels = c('No','Yes'), labels = c(1,2))

#数据分割

#用

library(caTools)

#set.seed(123)里面有数据就是随机处理

set.seed(123)

split = sample.split(datasets$Purchased, SplitRatio = 0.8)

training_set = subset(datasets, split == TRUE) #80%

test_set = subset(datasets, split == FALSE) #20%

#数据规范化(缩放)

training_set= scale(training_set)

test_set= scale(test_set)

这个数据在R数据处理数据规范化得时候会遇到一个坑,提示‘X’必需为数值


R语言遇到一个坑

数值?数字?

因为原本datasets$Purchased是True false 我们转成了1、2, 这个时候的1、2是数字,还不是数值,所以这个时候我们要注意,

因为这个 时候我们是需要对Age 和 Salary 处理就可以

training_set[,2:3 ] = scale(training_set[, 2:3])

test_set[,2:3 ] = scale(test_set[,2:3 ])

运行代码后,这个时候看到规范后的数据了,数值很靠近,接近-1和1之间。

training_set

Country        Age    Salary Purchased

2      2 -1.42857869 -1.1397581        2

3      3 -1.05088836 -0.6631119        1

4      2 -0.04371416 -0.1070247        1

5      3  0.20807939  0.1136448        2

6      1 -0.42140448 -0.3453478        2

7      2  0.05420556 -0.8219940        1

8      1  1.21525360  1.3229138        2

9      3  1.46704715  1.6406780        1

ok,这就是Pythonh和R语言的数据规范化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容