“大家还没搞清楚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))
选取需要分析的变量,做相关性分析,可帮助理清这些变量间相爱相杀的真面目,更好地理解这些变量在数据生态圈里是如何相生相克,相荣相惜地存在着。
然,并不是每一个变量(特征)对结果都有同等的贡献,数据生态圈如生物生态圈,一样存在弱肉强食,有些特征对结果来说根本没有存在感,如有庞大的数据特征,尽快识别这些特征,剔出贡献度极小的特征,可建立更加高效节能的模型。
下一篇,特征工程。
领取专属 10元无门槛券
私享最新 技术干货