十分钟搞懂“Python数据分析”

本文详细介绍了Python数据分析的全过程,包括数据导入、数据探索(统计、分组、关联分析、方差分析)、数据处理(缺失值处理、类型转换、格式统一、正态化、分箱、独热码)、建模(线性回归)、模型评估(R²、MSE)和模型调优(岭回归、网格搜索)。强调数据预处理在项目中的重要性。
摘要由CSDN通过智能技术生成

本次介绍的建模框架图分为六大版块,依次为导入数据,数据探索,数据处理,建模,模型评估,模型调优(完整的逻辑框架图请看文章末尾处)。

图片

在实际商业项目中,建模前的工作占据整个项目70%左右的时间。读者可能会问你既然是模型预测,为什么不把更多时间放在模型和调参上?因为巧妇难为无米之炊,数据本身决定了模型预测的上限,而模型或算法只是无限逼近这个上限而已。正所谓兵马未动粮草先行,数据探索和数据处理能为之后建模打下坚实基础,因此团队做项目时会把大量时间投放在这两个部分,目的在于提高数据质量,发现变量间关系,选取恰当特征变量。下面我会依次介绍这六个版块,但详解数据探索和数据处理版块。

 一   导入数据

Python数据分析的第一步是要把数据导入到Python中。导入数据需要做两件事,第一,告诉Python 你的文件格式,常用的格式有:.csv,.jason, .xlsx, .hdf。第二,告诉Python 你的文件路径。

举例:假如文件格式为.csv,    文件路径为:path =“C:\Windows\...\desktop\mydata.csv”

通过df.read_csv(path)函数,即可将数据导入Python。

图片

 二   数据探索

数据探索版块主要涉及描述性统计,数据分组,关联分析,方差分析。会涉及一些Python函数和统计学知识,笔者依次介绍。

图片

描述性统计

Ø  基本描述

通过df.describe()函数可对数据有一个基本了解,比如平均值、标准差、四分位数、最大最小值等

Ø  数据类型

通过df.dtypes 函数,可知变量的数据类型,比如object型,int型,float型(为后面的数据处理做准备)

Ø  分组统计

通过value_counts(),可统计分类变量里不同组的数量

Ø  箱形图

通过sns.boxplot(x,y,data=df),可将数据以‘箱形’展示出来,查看数据分布情况,识别离散值

Ø  散点图

通过plt.scatter(x,y),可发现两组变量间的关系(正相关、负相关、不相关)

 

数据分组

数据分组部分主要介绍三个函数,分别为groupby(),pivot(), pcolor(),可视化效果依次提高,有助于快速发现不同组间的关系。

Ø  函数groupby(),可对一个或多个分类变量进行分组

Ø  函数pivot(), 能提高groupby()分组后的数据的可视化程度,实现更清晰的展示

Ø  函数pcolor(), 能把pivot table()处理后的数据转换成热图,更易发现不同组间关系

关联分析

Ø  通过df.corr(), 可得到所有变量间的相关系数

Ø  通过pearsonr(x,y),可得到皮尔森相关系数和P值,以此判断两个变量间的关联强度

·      皮尔森系数接近于1时,正相关;接近于-1时负相关;接近于0时,不相关

·      P值,用来判断发生的可能性大小、原假设是否正确。若P<0.05, 有理由拒绝原假设。

方差分析

Ø  f_oneway()实现方差分析,得到F-testscore 和P 值

Ø  F-testscore 越大,关联越强; F-testscore 越小,关联越弱。

Ø  P值,同上(参见关联分析P值)

笔者总结出(二)数据探索版块的逻辑框架图,见下图。

图片

三   数据处理

数据处理版块主要涉及处理缺失值,数据类型转换,格式转换,数据正态化,数据分箱,独热码。会涉及Python代码和统计学知识,笔者依次介绍。

图片

处理缺失值

Ø  查看数据源

直接查看数据源头,看能否把缺失的数据找回

Ø  删除缺失值

通过函数dataframe.dropna(),可将缺失的数据删除

Ø  替换缺失值

通过函数data.replace(missing_value,new_value),可将缺失的数据替换为平均值或众数

数据类型转换

Ø  通过astype()函数,能把错误的数据类型转换为正确的数据类型

Ø  举例:若变量‘price’的数据类型为object型时,通过代码:df[‘price’]= df[‘price’].astype(‘int’),将变量‘price’转换为 int型。

格式转换

不同部门(比如市场部、物流部、IT部)通常会有不同的储存格式,需要对数据统一格式、单位转换,才可建模。

     Ø  统一格式

举例:BeiJing的书写格式有多种,比如BeiJing, BEIJING, BJ, B.J, 需要统一为一种格式。

Ø  单位转换

·       对同一特征变量,要用统一的单位,举例:在评比汽车耗油量时经常用到两种单位,每加仑多少英里(mpg)和每百公里多少升(L/100km),在数据分析时需将其统一。

·      例子:通过函数df[‘city-mpg’]= 235/df[‘city-mpg’] 实现mpg 和 L/100km 单位间的转换(其实就是加减乘除),再通过df.rename()对变化后的列名进行修改

图片

 

数据正态化

某些特征变量需要进行数据正态化,正态化后的特征变量才能对模型有相对公平的影响(若没懂,请看特征缩放中的例子)。常用的数据正态化的方法有三种:特征缩放,最大最小值,Z分数。

图片

    Ø     特征缩放:Xnew=Xold/Xmax

举例:变量‘age’的范围20 – 100 ,变量‘income’ 的范围20000 – 500000,由于数值大小的差距,变量‘age’和‘income’对模型的影响是完全不同和不公平的。经过特征缩放运算后,两个变量会拥有相似的取值范围,也因此对模型影响的程度会变得较为公平合理,代码见上图。

图片

Ø     最大值最小值:Xnew=(Xold-Xnew)/(Xmax-Xmin)  , 代码见上图

Ø     Z分数: Xnew = (Xold-μ)/σ,  代码见上图

数据分箱

数据分箱能对数据进行更明了的展示,可把数值变量转换为分类变量,通过cut()函数可对数据进行分箱,代码见下图。

图片

举例:cut()函数能将变量‘price’的所有数值放入3个箱子中,将变量‘price’的数值变量转换为分类变量,运行结果见下图。

图片

独热码

模型训练通常是不会接收object 或 string型,只能接收数值型,但独热码能将分类变量的object 或 string型转换为定量变量的数值型。

Ø  函数:get_dummies()

Ø  举例:‘fuel’ 有gas和dissel两类,通过pd.get_dummies(df[‘fuel’])将gas 和dissel 重新赋值0或1,将分类变量‘fuel’转换为数值型,结果见下图

图片

笔者总结出(三)数据处理版块的逻辑框架图,见下图。

图片

 四   建模

本文涉及线性回归和多项式回归算法,其他众多算法比如神经网络、随机森林、支持向量机、时间序列等,不在此介绍。

图片

 五   模型评估

评判模型准确度时经常用到的两个指标, R方检验(R²)和均方误差检(MSE)。

Ø  R²的值越接近于1,拟合效果越好,R²的值越接近于0,拟合效果越差

Ø  MSE能反应出真实值与预计值间的误差,MSE越小,模型准确性越高

图片

 六   模型调优

模型调参能够优化模型的准确性,调参指调整参数,那如何找到最佳的参数组合呢? 有如下如下方法:

Ø  岭回归, 函数: Ridge(alpha),解决过拟合现象

Ø  网格搜索:用穷举法遍历所有不同的参数组合,筛选出模型效果最好的一组参数组合。函数: GridSearchCV(Ridge(), parameters, cv), cv指交叉验证次数。

图片

结尾

至此,笔者已介绍如何导数到Python、如何探索和处理数据、如何建模、如何评估模型、如何调参。完整的逻辑框架会让读者对‘Python数据分析’有一个全面的认识,快速达到俯瞰全局的高度。最后笔者搭建出完整的逻辑框架图送给读者,希望对你们有帮助。

图片

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习结果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值