引言:本文重点是用十分钟的时间帮读者建立Python数据分析的逻辑框架。其次,讲解“如何通过Python 函数或代码和统计学知识来实现数据分析”。

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

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

一 导入数据

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

举例:假如文件格式为.csv, 文件路径为:path =“C:Windows...desktopmydata.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数据分析相关推荐

  1. python数据分析软件_Python数据分析工具

    Numpy Python没有提供数组功能,虽然列表可以完成基本的数组功能,但他不是真正的数组.Numpy内置函数处理速度是c语言级别,因此尽量使用内置函数,避免出现效率瓶颈的现象. Numpy的安装: ...

  2. python ppt 绘图_Python数据分析-Matplotlib绘图基础

    本文结构: 一.Matplotlib绘图基础及中文乱码解决 二.如何利用pandas绘图? 三.如何利用notebook制作分析报告? 图形在我们日常生活中无处不在.如果没有可视化,就是一些数字罗列, ...

  3. python统计分析书籍_Python数据分析入门书籍推荐

    在当下这个数据驱动的时代,毫不夸张的说各行各业的商业决策和运营管理都离不开数据分析,因此数据分析已经成为当前每个人的必备技能和加分项.对于许多初学者来讲,想要入门Python数据分析常常不知道从何下手 ...

  4. python 多项式回归 假设检验_Python数据分析入门书籍推荐

    在当下这个数据驱动的时代,毫不夸张的说各行各业的商业决策和运营管理都离不开数据分析,因此数据分析已经成为当前每个人的必备技能和加分项.对于许多初学者来讲,想要入门Python数据分析常常不知道从何下手 ...

  5. python教育数据挖掘_Python 数据分析 与 数据挖掘 (介绍篇)

    2019-03-15 20:14:57 楚格 介绍:Python 数据分析与挖掘,快速入门的Python and Packet 工具使用方法,其次是解决方案的应用案例,最后是数据分析与挖掘的思维价值. ...

  6. python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt

    Python数据分析与应用航空公司客户价值分析.ppt 大数据,成就未来 * 大数据挖掘专家 * 大数据挖掘专家 大数据,成就未来 航空公司客户价值分析 * 目录 分析航空公司现状 1. 行业内竞争 ...

  7. python数据分析图_Python数据分析:手把手教你用Pandas生成可视化图表的教程

    大家都知道,Matplotlib 是众多 Python 可视化包的鼻祖,也是Python最常用的标准可视化库,其功能非常强大,同时也非常复杂,想要搞明白并非易事.但自从Python进入3.0时代以后, ...

  8. python 组合数库函数_Python数据分析之Numpy库(笔记)

    2.1 ndarray多维数组 2.1.1 创建ndarray数组 通过NumPy库的array函数,即可轻松地创建ndarray数组.NumPy库能将数据(列表,元组,数组,或其他序列类型)转换为n ...

  9. python 数据分析班_Python数据分析班

    第一课 Python入门 知识点1:Python安装 知识点2:常用数据分析库NumPy.Scipy.Pandas.matplotlib安装 知识点3:常用高级数据分析库scikit-learn.NL ...

最新文章

  1. 合理利用延迟初始化优化 Spring Boot
  2. 记录一下我使用的vim的配置文件
  3. ACM第一次集训 - 动态规划问题
  4. delphi控件切图界面闪烁_先本设计教你跳过UI小程序的七个坑
  5. 7.6 T1 深度优先搜索(dfs)
  6. 一个多线程练习,为什么直接运行和debug结果不一样
  7. 7 款 Python 可视化工具对比
  8. SpringAs3的一些配置参数
  9. Java排序算法之插入排序(图文描述)
  10. GB50174《电子信息系统机房设计规范》贯标培训通知
  11. php微商系统,产品营销推广神器Thinkphp核心微商新版零售系统源代码
  12. matlab人口增长线性回归拟合_科学网—matlab线性拟合 - 张瑞龙的博文
  13. 题目 1035: [编程入门]自定义函数之字符类型统计
  14. 堆外内存(off-heap),堆内存(on-heap)
  15. sklearn学习之Spectral Clustering
  16. max3490esa_MAX4524EUB_美信MAXIM半导体代理就找宇航
  17. LeeCode祖玛游戏
  18. Zhong__Go随机密码生成器
  19. 大龄计算机博士就业如何,大龄老博士的“血泪”总结:找工作请避免这些“坑”...
  20. superPoint学习

热门文章

  1. HDU - 6992 Lawn of the Dead 线段树 + 思维
  2. Codeforces Round #604 (Div. 2) E. Beautiful Mirrors 期望dp
  3. Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心
  4. 【杭电多校2020】Distinct Sub-palindromes【结论】【构造】
  5. Educational Codeforces Round 106 (Rated for Div. 2)
  6. LIS最长上升子序列
  7. 牛客题霸 [ 缺失数字] C++题解/答案
  8. CF961G-Partitions【斯特林数】
  9. POJ1456-Supermarket【并查集】
  10. codeforces1454 F. Array Partition