数据处理过程
数据科学与人工智能
共 1902字,需浏览 4分钟
·
2020-08-30 22:53
一般步骤
定义所要解决的问题,针对该问题得到一些基础的想法
查阅与问题相关的文献,找到适合解决问题的几种方法
然后改进这些方法以适合自己的要求
了解数据
理解问题:查看数据的每一个变量,并对其进行简单分析,把认为最重要的几个挑出来
单因素分析:关注因变量,并对其深入分析
多因素研究:分析因变量与自变量之间的关系
数据清洗:处缺失数据和异常值
检验假设:检查数据是否和多元分析方法的假设达到一致
准备工作
变量:变量的名字
变量类型:数值或者类别
划分:按种类划分变量
期望:我们所期望变量所达到的对自变量的影响程度
结论:对该变量得出的重要结论,最好与期望一致
Python数据描述与处理
因变量数据描述
#绘制直方图
sns.distplot(df['Dependent variable']);
#数据偏度和峰度
print("Skewness: %f"%df['Dependent variable'].skew())
print("Kurtosis: %f"%df['Dependent variable'].kurt())
相关性变量分析
#因变量与数值型变量关系
#绘制散点图,查看与变量的关系
df.plot.scatter(x=var,y=depvar)
#因变量与类别型变量关系
#绘制箱线图,查看趋势
sns.boxplot(x= ,y= ,data= )
#相关系数矩阵
corrmat = df.corr()
#热图
sns.heatmap(corrmat)
#因变量以及相关变量彼此之间的散点图
sns.set()
cols=[var......]
sns.pairplot(df[cols])
plt.show()
缺失数据处理
缺失数据是否具有普遍性?
缺失数据是否有律可循?
我们需要保证缺失数据的处理不会出现偏离或者隐藏任何难以忽视的真相
#将每个变量的缺失占比排序
total = df.isnull().sum().sort_values(ascending=False)
percent = (df.isnull().sum()/df.isnull.count).sort_values(ascending=False)
missing_data = pd.concat([tol,percent],axis=1,keys=['Total','Percent'])
print(missing_data.head(number))
#当有15%的数据缺失时,应该删除改变量,并认为该变量应该不存在
单因素分析
单因素分析的关键是建立阈值,定义一个观察者为异常值。我们对数据进行正态化,均值为0,方差为1。
scaled = StandardScaler().fit_transform(df['Dependent variable'][:,np.newaxis]#标准化
low_range = scaled[scaled[:,0].argsort()[:k]#取前k个
high_range = scaled[scaled[:,0].argsort()[-k:]#取后k个
双变量分析
画出散点图,查看离群值,删除它
data.plot.scatter(x=var, y='dependent variable');
应用多元技术
正态性
同方差性
线性
相关错误缺失
1.正态性:
#直方图——峰值和偏度
#正态概率图——数据分布应紧密跟随正态分布对角线
sns.distplot(df['dependent variable'],fit=norm)
res = stats.probplot(df['dependent variable'],plot=plt)
#可用对数变化解决不不跟随正太分布对角线的问题
df['dependent variable'] = np.log(df['dependent variable'])
2.同方差性:
#绘制散点图查看
plt.scatter(df_train['var'],df_train['dependent variable']);
3.虚拟变量
#将类别型变量转化为虚拟变量
df = pd.get_dummies(df)
《数据科学与人工智能》公众号推荐朋友们学习和使用Python语言,需要加入Python语言群的,请扫码加我个人微信,备注【姓名-Python群】,我诚邀你入群,大家学习和分享。
评论