2023Python大数据分析算法实例.docx
《2023Python大数据分析算法实例.docx》由会员分享,可在线阅读,更多相关《2023Python大数据分析算法实例.docx(172页珍藏版)》请在课桌文档上搜索。
1、Python大数据分析算法实例目录1.1 描述统计31.2 假设检验81.3 信度分析131.4 列联表分析161.5 相关分析171.6 方差分析191.7 回归分析25L8聚类分析301.9 判别分析351.10 主成分分析401.11 因子分析431.12 时间序列分析461.13 生存分析491.14 典型相关分析741.15 RoC分析801.16 距离分析851.17 对应分析951.18 决策树分析971.19 神经网络一深度学习1031.20 蒙特卡罗模拟1131.21 关联规则1231.22 UpliftModeling1411.23 集成方法1461.24 异常检测1531
2、.25 文本挖掘1571.26 Boosting算法(提升法和GradientBoosting)1651.27 总结结169Python是现在最受欢迎的动态编程语言之一(还有Perl、RUby等)。Python不但拥有强大的数据处理功能,而且完全可以用它构建生产系统。在众多解释型语言中,由于各种历史和文化的原因,PythOn发展出了一个巨大而活跃的科学计算(SCientifiCComputing)社区。在过去的10年,PythOn从一个边缘或“自担风险”的科学计算语言成为数据科学、机器学习、学界和工业界软件开发最重要的语言之一。数据分析与可视化是指对数据进行控制、处理、整理、分析的过程。数据分
3、析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载、清理、转换与重塑。本章主要讲述基于Python的数据分析方法,尽量翔实地阐述PythOn数据分析方法的原理与实践。1.1 描述统计统计学分为描述统计学和推断统计学。描述统计学是使用特定的数字或图表来体现数据的集中程度或离散程度,如平均数、中位数、众数、方差、标准差;推断统计学是根据样本数据来推断总体特征,如产品检查,一般采用抽检,根据所抽样本的质量合格率作为总体质量合格率的一个估计。在数值分析的过程中,我们往往要计算出数据的统计特征,用来做科学计算的NUmPy和SCiPy工具可以满足我们的需求。MatPOuib工具可用来绘制图形,满
4、足图分析的需求。1 .基本概念与PythOn中原生的LiSt类型不同,NUmPy中用ndarray类型来描述一组数据:fromnumpyimportarrayfromnumpy.randomimportnormal,randint# 使用LiSt来创造一组数据data=1,2,3# 使用ndarray来创造一组数据data=array(1,2,3)# 创造一组服从正态分布的定量数据data=normal(0f10,size=10)# 创造一组服从均匀分布的定性数据data=randint(0,10,size=10)2 .中心位置(均值、中位数、众数)数据的中心位置是我们最容易想到的数据特征。借
5、由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观的选择。数据的中心位置可分为均值(Mean)、中位数(Median)和众数(MOde)。其中,均值和中位数用于定量的数据,众数用于定性的数据。对于定量数据来说,均值是总和除以总量(N),中位数是数值大小位于中间(奇偶总量处理不同)的值:(8.1)(8.2)Mean=f!lNN+1Median= *SeleCt(Data,-),N%2=1,N,NSeleCt(DateI,一)+Select(Data,+1)22n%2=02均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。使用NUmPy计算均值与中
6、位数:fromnumpyimportmean,median若计算均值mean(data)/计算中位数median(data)对于定性数据来说,众数是出现次数最多的值,使用SCiPy计算众数:fromscipy.statsimportmode#计算众数mode(data)3 .发散程度(极差、方差、标准差、变异系数)对数据的中心位置有所了解以后,一般我们会想知道数据以中心位置为标准有多发散。如果以中心位置来预测新数据,那么发散程度决定了预测的准确性。数据的发散程度可用极差(PTP)、方差(Variance)、标准差(STD)、变异系数(CV)来衡量,它们的计算方法如下:(8.3)PTP=Max(
7、Data)-Min(Data)Variance=(8.4)STD=Wariance(8.5)CSTDCV=Mean(8.6)极差是只考虑了最大值和最小值的发散程度指标;相对来说,方差包含更多的信息;标准差基于方差,但是与原始数据同量级;变异系数基于标准差,但是进行了无量纲处理。使用NUmPy计算极差、方差、标准差和变异系数:fromnumpyimportmean,ptp,var,std# 极差ptp(data)# 方差Var(data)# 标准差std(data)# 变异系数mean(data)/std(data)4.偏差程度(z分数)之前提到均值容易受异常值影响,那么如何衡量偏差、偏差到多少
8、算异常是两个必须要解决的问题。定义Z.分数(ZScore)为测量值距均值相差的标准差数目:X-MeanZ-Score=STD(8.7)当标准差不为O且不为接近于O的数时,Z-分数是有意义的,使用NUmPy计算分数:fromnumpyimportmean,std#计算第一个值的z-分数(data0-mean(data)/std(data)5.相关程度有两组数据时,我们关心这两组数据是否相关,相关程度是多少。用协方差(COV)和相关系数(Corrcoef)来衡量相关程度:N(Dataii-Meanx)*(Data2z-Mean2)1.ZUV=(8.8)corrcoef=covSTDx*STD2(8
9、.9)协方差的绝对值越大表示相关程度越高,协方差为正值表示正相关,负值为负相关,0为不相关。相关系数基于协方差,但进行了无量纲处理。使用NUmPy计算协方差和相关系数:fromnumpyimportarray,cov,corrcoefdata=array(datalzdata2)豺十算两组数的协方差#参数bias=l表示结果需要除以N,否则只计算了分子部分3返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的协方差。对角线为方差COv(data,bias=l)M十算两组数的相关系数#返回结果为矩阵,第i行第j列的数据表示第i组数与第j组数的相关系数。对角线为1corrcoef(data)
10、6.利用MatPlOtIiblSI图举例利用PythOn画图需要使用MatPlotIib库。【例8.1】importmatlotlib.ylotaspit创建一组数据,该数据为30个中国CBA球员的体重,其中“”表示换行接着写。weight=225,232,232,245,235,245,270,225,240r240,217,195,225,185,200,220,200,210,271,240,220,230,215,252,225,220,206,185,227,236(1)直方图画法找出最大值与最小值,确定数据的范围。 整理数据,将数据分为几组(尽量使每组都有数据),计算频数分布表。
11、根据频数分布表画出频数直方图。频数为纵坐标,分组类别为横坐标。通过直方图可以对数据分布有一个直观的了解。 除了频数直方图,还有频率直方图外。频率直方图的纵坐标为频率/组距。频率二频数/总数,组距是分组的极差。fromylabimportml#显示中文设置mpl.reParams,font.sans-serif,=LSilnHei显示中文设置#创建频数分布直方图#Weight为待绘制的定量数据,bins=5表示将数据划分为5个区间Ormed=FalSe时为频数分布直方图pit.hist(weight,bins=5znormed=False)丘轴区间范围pit.xlabel(weight,)pit
12、.ylabel(,frequency*)pit.title(CHINACBAHistogramofweightfrequencydistributionofplayers)pit.show()图8.1所示为频数分布直方图。2-O- 200220240260weight1210CHINA CBA Histogram of weight frequency distbuton of players8 6 Auuanbdg图8.1频数分布直方图(2)箱线图画法下四分位数Q1:将数据按升序排序,位于25%处的数据。 上四分位数Q3:将数据按升序排序,位于75%处的数据。 四分位距IQR=Q3Ql,是描
13、述数据离散程度的一个统计量。 异常点是小于Ql1.5IQR或大于Q3+1.5IQR的值。 下边缘是除异常点以外的数据中的最小值。 上边缘是除异常点以外的数据中的最大值。书箱线图pit.boxplot(weight,IabelS=L体重,)pit.title中国CBA球员体重箱线图,)pit.show()图8.2所示为箱线图。中国C8A碌员体重箱线图图8.2箱线图1.2假设检验假设检验是推论统计中用于检验统计假设的一种方法。统计假设是可通过观察一组随机变量的模型进行检验的科学假说。一旦能估计未知参数,就会希望根据结果对未知的真正参数值做出适当的推论。统计上对参数的假设就是对一个或多个参数的论述。
14、而其中欲检验其正确性的是零假设(NUIlHypothesis),零假设通常由研究者决定,反映研究者对未知参数的看法。相对于零假设,其他有关参数的论述是备择假设(AItematiVeHypothesis),通常反映了执行检验的研究者对参数可能数值的另一种(对立的)看法(换句话说,备择假设通常才是研究者最想知道的)。日常进行数据分析难免会用到一些假设检验方法进行数据探索和相关性、差异性分析,并且这是进行后续统计模型(机器学习类预测模型可以略过)预测的第一步。1 .必要条件 标准Python科学计算环境(NumPySCiPy、Matplotlib)0 PandaSo Statsmodelso Sea
15、borno要安装Python及这些依赖,推荐下载AnaCondaPythOn或EnthOUghtCanopy0如果使用UbUmU或其他LinUX系统,更应该使用包管理器。适用于贝叶斯模型的是PyMC,在PythOn中实现了概率编程语言。2 .统计性检验的4部分正态性检验。 相关性检验。 参数统计假设检验。 非参数统计假设检验。(1)正态性检验正态性检验是很多统计建模的第一步,例如I,普通线性回归就对残差有正态性要求。正态性检验可用于检查数据是否具有高斯分布的统计检验。W检验(ShaPiro-WiIkteSt)用于检验数据样本是否具有高斯分布。【例8.2】fromscipy.statsimpor
16、tshapirodata=21,12,12r23,19,13,20,17,14,19stat,p=shapiro(data)Print(stat为:%f,考Stat,p值为:%f,%p)输出:Stat为:0.913007P值为:0.302289(2)相关性检验相关性检验是检查两个样本是否相关的统计检验。皮尔逊相关系数用于检验两个样本是否具有单调关系。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本的观察具有相同的方差。【例8.3】fromscipy.statsimportpearsonrdatal=21,12,12,23,19,13,20,17,14,19da
17、ta2=12,11,8,9,10,15,16,17,106corrzp=pearsonr(datal,data2)print(corr:%f,%corr,p值为:%f,%p)输出:Corr为:0.142814P值为:0.693889(3)卡方检验检验两个分类变量是相关的还是独立的。假设: 用于计算列联表的观察是独立的。 列联表的每个单元格中有25个或更多实例。【例8.4】fromscipy.statsimportchi2_contingencydatal=21,12,12,23,19,13,20,17,14,19data2=12,llz8,9z10z15,16,17,10z16statzpzd
18、ofzexpected=chi2_contingency(datalzdata2)print(stat:%f,%stat,p值为:%f%)输出:Stat为:0.000000P值为:1.000000(4)参数统计假设检验T检验检验两个独立样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。【例8.5】fromscipy.statsimportttest_inddatal=21,12,12,23,19,13,20,17,14,19data2=12,11,8,9,10z15,16,17z10z16stat,p=ttes
19、t_ind(datal,data2)print(stat:%fn%stat,p值为:%f%p)输出:Stat为:2.802933P值为:0.011763配对T检验检验两个配对样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。每个样本的观察结果是成对的。【例8.6】fromsciy.statsimportttest_reldatal=21,12z12,23,19,13,20,17,14,19data2=12rll,8,9,10,15,16,17,10,16stat,p=ttest_rel(datal,data2)
20、print(stat为:%f,%stat,p值为:%f,%p)输出:Stat为:3.022945P值为:0.014410方差分析测试两个或两个以上独立样本的均值是否存在显著差异。假设: 每个样本中的观察是独立同分布的。 每个样本的观察都是正态分布的。 每个样本中的观察具有相同的方差。【例8.7】fromscipy.statsimportf_onewaydatal=21,12,12,23,19z13,20,11,14,19data2=12,11,8,9,10z15,16,17,10,16stat,p=f_oneway(datal,data2)print(,stat为:%f,%stat,p值为:%
21、f,%p)输出:Stat为:7.856436P值为:0.011763(5)非参数统计假设检验曼惠特尼U检验检验两个独立样本的分布是否相等。假设: 每个样本中的观察是独立同分布的。 可以对每个样本中的观察进行排序。【例8.8】fromsciy.statsimportmannwhitneyudatal=21z12,12,23,19z13z20z17,14zl9data2=(12,11,8,9,10,15,16,17,10,16stat,p=mannwhitneyu(datal,data2)Print(stat为:%f,%stat,p值为:%f%)输出:Stat为:17.500000P值为:0.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 Python 数据 分析 算法 实例
链接地址:https://www.desk33.com/p-1081584.html