【案例】5步掌握Python数据分析挖掘基础应用-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 考研考博>>

考研

>>

【案例】5步掌握Python数据分析挖掘基础应用

【案例】5步掌握Python数据分析挖掘基础应用

发布:henry_l | 分类:考研

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

文章首发其他阅读渠道:人大经济论坛微信公号知乎许许多多的人都非常容易爱上Python这门语言。自从1991年诞生以来,Python现在已经成为最受欢迎的动态编程语言之一,尤其进入21世纪以来,Python在行业应用和学术研究 ...
扫码加入统计交流群


文章首发
其他阅读渠道:
人大经济论坛微信公号
知乎

许许多多的人都非常容易爱上Python这门语言。自从1991年诞生以来,Python现在已经成为最受欢迎的动态编程语言之一,尤其进入21世纪以来,Python在行业应用和学术研究中进行科学计算的势头也越来越迅猛。

——《Python for Data Analysis》(Wes Mckinney)

Python不仅在编程方面有强大的实力,而且由于不断改进的第三方库,Python在数据处理方面也越来越突出;近年来,非常火爆的机器学习(Machine Learning)以及前沿的自然语言处理(Natural Language Processing)也选择Python作为基础工具。所以要想在数据科学领域有所进步的话,了解学习Python看来还是有所必要的。

本文通过简单案例,分享Python在数据处理方面的实际应用,属于基础学习范畴,希望刚刚接触Python学习的新手们能通过应用去解决实际问题从而巩固掌握Python操作,在这里与大家相互学习,也希望大神们轻拍:)


Without further ado,lets get started!

#进入正题#

本文使用Python2.7版本,操作在集成开发坏境Spyder中进行;选择的数据集,是大名鼎鼎的鸢尾花数据集iris.csv,数据集网上公开请自行下载!


1. 数据集截图如下图1:

该数据集包含数据有150行*5列。前4列分别是:花萼的长度、宽度,花瓣的长度、宽度;最后一列是花的分类,总共分3类。


图1.iris数据集截图


2. 读入数据,代码如下:

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. from sklearn import * #机器学习库
  5. np.random.seed(123) #设置随机数种子

  6. iris=pd.read_csv("C:\\Users\\Administrator\\Desktop\\iris.csv",header=False)
  7. #操作请注意:输入文件实际路径
  8. print iris.shape #输出数据维度
  9. print iris.head() #查看前5行
复制代码

输出结果如下:

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. from sklearn import * #机器学习库
  5. np.random.seed(123) #设置随机数种子

  6. iris=pd.read_csv("C:\\Users\\Administrator\\Desktop\\iris.csv",header=False)
  7. #操作请注意:输入文件实际路径
  8. print iris.shape #输出数据维度
  9. print iris.head() #查看前5行
  10. (150, 5)
  11. SepalLengthSepalWidthPetalLengthPetalWidth Name
  12. 0 5.1 3.5 1.4 0.2Iris-setosa
  13. 1 4.9 3.0 1.4 0.2Iris-setosa
  14. 2 4.7 3.2 1.3 0.2Iris-setosa
  15. 3 4.6 3.1 1.5 0.2Iris-setosa
  16. 4 5.0 3.6 1.4 0.2Iris-setosa
复制代码

Python通过pandas库,读入数据,注意读取时文件路径的填写,需用“\\”或者“/”符号。同时,Python面向对象编程,shape及head函数建立在iris数据框对象之上,这与R语言不同,R语言更加“函数化”,dim及head等函数都是内置函数。


3. 描述性统计,代码如下:

  1. print iris.describe().T #描述性统计
复制代码

输出结果如下:

  1. print iris.describe().T #描述性统计
  2. count mean stdmin25% 50%75%max
  3. SepalLength 1505.8433330.8280664.35.15.806.47.9
  4. SepalWidth 1503.0540000.4335942.02.83.003.34.4
  5. PetalLength 1503.7586671.7644201.01.64.355.16.9
  6. PetalWidth 1501.1986670.7631610.10.31.301.82.5
复制代码

从输出结果中可以看到每列数据的平均值等统计数值,较简单不多说。


4. 聚类分析,代码如下:
  1. irisK3=cluster.KMeans(n_clusters=3,random_state=1) #分为3类
  2. irisFeatures=iris.ix[:,1:4] #去掉Name列
  3. #print irisFeatures.head()
  4. irisK3.fit(irisFeatures)
  5. print irisK3.labels_ #输出聚类结果
复制代码

输出结果如下:

  1. irisK3=cluster.KMeans(n_clusters=3,random_state=1) #分为3类
  2. irisFeatures=iris.ix[:,1:4] #去掉Name列
  3. #print irisFeatures.head()
  4. irisK3.fit(irisFeatures)
  5. print irisK3.labels_ #输出聚类结果
  6. [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  7. 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  8. 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 0 2 2 2 2
  9. 2 2 2 2 2 2 2 2 0 2 2 2 0 2 2 0 2 2 2 2 2 2 2 2 2 2 2 0 2 2 2 2 2 2 2 2 2
  10. 2 2]
复制代码


在Python中利用sklearn库中的cluster.Kmeans对irisFeatures进行聚类分析,并输出聚类结果。


5.决策树模型,代码如下:

  1. target=iris["Name"] #目标变量
  2. data=iris.ix[:,1:4] #自变量
  3. train_data,test_data,train_target,test_target=cross_validation.train_test_split(data,
  4. target,test_size=0.24,random_state=0) #分成训练集、测试集(占0.24)
  5. clf=tree.DecisionTreeClassifier(criterion='gini', max_depth=6,
  6. min_samples_split=5) #CART算法
  7. clf_fit=clf.fit(train_data, train_target) #开始fit
  8. #print clf_fit
  9. train_est=clf.predict(train_data) #预测训练集
  10. test_est=clf.predict(test_data) #预测测试集
  11. sum=0
  12. for i in range(36):
  13. if test_est[i]==test_target[i]:
  14. sum=sum+1
  15. print 'test_accuracy=',"%.2f%%"%(sum*1.0/36*100) #测试集预测正确率

  16. sum=0
  17. for i in range(114):
  18. if train_est[i]==train_target[i]:
  19. sum=sum+1
  20. print 'tarin_accuracy=',"%.2f%%"%(sum*1.0/114*100) #训练集预测正确率
复制代码

输出结果:

  1. target=iris["Name"] #目标变量
  2. data=iris.ix[:,1:4] #自变量
  3. train_data,test_data,train_target,test_target=cross_validation.train_test_split(data,
  4. target,test_size=0.24,random_state=0) #分成训练集、测试集(占0.24)
  5. clf=tree.DecisionTreeClassifier(criterion='gini', max_depth=6,
  6. min_samples_split=5) #CART算法
  7. clf_fit=clf.fit(train_data, train_target) #开始fit
  8. #print clf_fit
  9. train_est=clf.predict(train_data) #预测训练集
  10. test_est=clf.predict(test_data) #预测测试集
  11. sum=0
  12. for i in range(36):
  13. if test_est[i]==test_target[i]:
  14. sum=sum+1

  15. print 'test_accuracy=',"%.2f%%"%(sum*1.0/36*100) #测试集预测正确率

  16. sum=0
  17. for i in range(114):
  18. if train_est[i]==train_target[i]:
  19. sum=sum+1

  20. print 'tarin_accuracy=',"%.2f%%"%(sum*1.0/114*100) #训练集预测正确率

  21. test_accuracy= 97.22%
  22. tarin_accuracy= 98.25%
复制代码

利用CART算法对iris数据集建立模型,并预测结果,同时输出训练集测试集的预测正确率。相关说明及代码含义均在代码中已注释。


最后:以上仅为小例子,实际问题要比这个复杂的多:数据清洗、模型选择、调参等等!因为网上教程给出完整数据、代码及结果的资料不多,所以把自己的浅薄经验分享给大家!


「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-3957273-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。