Python机器学习-数据预处理

“大家还没搞清楚PC时代的时候,移动互联网来了;还没搞清楚移动互联网的时候,大数据时代来了。。。”

也不打个招呼,真的就来了。大数据时代的数据,怎么玩?

实际工作中遇到的数据可是“飞雪带春风,裴回乱绕空”,时而有缺失,时而有重复,数据的辈分(量级)也大不一样,因此在做建立模型之前,有必要把数据坐排排,听指挥。

常见数据处理:

1。从excel读取数据

2。数据写入Excel

3。数据清理(依数据质量)

4。文本数据的处理

5。数据标准化(依算法需要)

6。数据变量之间相关性分析

Talk is cheap, show me the code!

1。从Excel数据读取:

import numpy as np

import pandas as pd

data = pd.read_csv(':/data.csv')

print(data.shape)‍‍‍#获取原始数据的行列数

column_names = data.columns#或者 column_names=list(data.columns)

2。数据写入Excel

writer1 = pd.ExcelWriter('LinearPrediction.xlsx')

df1 = pd.DataFrame(lr_y_predict)

df1.to_excel(writer1,'Sheet1')

writer1.save()

3。数据清理:

数据缺失值的三种处理方法:

‍任之:不管,直接使用,有些算法不挑,如树类算法(决策树,随机森林,XGBoost等)可以直接使用,有些算法不能忍,如线性回归

弃之:如果用线性回归,必须弃之

补之:插值补缺

第二种“弃之”的代码(包含剔除含特殊符号?的样本):

data = data.replace(to_replace='?', value=np.nan)

data = data.dropna(how='any')

4。文本数据的处理

有些试验的输出数据格式为txt文件,读取后用“,”分割,将字符转化为浮点数,.append()写入列表的末尾,np.array()转化为数组, reshape成所需的矩阵/数组,本例,x,y通过reshape(-1,1)转化为一列。reshape(1,-1)则会转化为一行。

上代码:

import numpy as np

x,y = [],[]

for sample in open(':/price.txt','r'):

_x,_y = sample.split(',')

x.append(float(_x))

y.append(float(_y))

x,y = np.array(x), np.array(y)

x,y = x.reshape(-1,1), y.reshape(-1,1)

5。数据标准化(依算法需要)

神经网络对数据归一化敏感,标准化可大大提高模型的精度。标准化即将样本缩放到指定的范围,标准化可消除样本间不同量级带来的影响(大数量级的特征占据主导地位;量级的差异将导致迭代收敛速度减慢;所有依赖于样本距离的算法对于数据的量级都非常敏感,如k邻近,量级不同时,选取的样本会不同)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()#标准化转换,scaler.scale_,scaler.mean_,scaler.var_可求每个属性的缩放倍数的倒数,均值,方差

scaler.fit(x_train, x_test)

x_train = scaler.transform(x_train)

x_test = scaler.transform(x_test)

6。数据变量之间相关性分析,两种方法

‍Color map,拿颜色来感受两两特征间的爱恨情仇

Scatter_matrix散点图,关系说不说的清,让数据说话

上代码:Colormap

上代码:Scatter_matrix

from pandas.plotting import scatter_matrix

features = ['Length (mm)', 'Width (mm)', 'Peak Long', 'Peak Lat']

scatter_matrix(data[features], alpha=0.2, figsize=(12,8))

corr_matrix = data.corr()

print(corr_matrix['Peak Lat'].sort_values(ascending=False))

选取需要分析的变量,做相关性分析,可帮助理清这些变量间相爱相杀的真面目,更好地理解这些变量在数据生态圈里是如何相生相克,相荣相惜地存在着。

然,并不是每一个变量(特征)对结果都有同等的贡献,数据生态圈如生物生态圈,一样存在弱肉强食,有些特征对结果来说根本没有存在感,如有庞大的数据特征,尽快识别这些特征,剔出贡献度极小的特征,可建立更加高效节能的模型。

下一篇,特征工程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G06U7G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券