Python数据科学:相关分析

图片


目前手上有两本书,一本《利用Python进行数据分析》,一本《Python数据科学》。app


对于学习什么东西,都有它的「道」和「术」。「道」即原理,「术」即技巧。dom


经过这几天翻阅这两本书,发现前者更像一本工具书。ide


它并不会真正的教你如何去分析数据,适合查阅。工具


然后者呢,更注重数据分析的原理,教咱们如何去剖析数据,获得咱们想要的结果。学习


因此接下来会之后者做为学习的方向,不能仅仅停留在描述性数据分析上(数据可视化)。spa


更应该多花时间在预测性数据分析上(创建数据模型预测)。blog


另外上期的送书活动已结束,两位小伙伴也联系我了。排序


没有中奖的小伙伴也不要伤心,后面小F会给你们争取更多的福利,因此关注就是了。图片



/ 01 / 前言ip


说实话,《Python数据科学》这本书是真的不错。


它不只提供了大量的专业术语的解释,还有各式各样通俗易懂的案例。


很是适合新手学习,后期必定也给你们争取争取一下送书的福利!


因此在每篇的前言,我会摘要一些《Python数据科学》的相关内容。


一方面,加深本身对相关知识的印象。


另外一方面,也分享给你们,补充一下专业知识。


分析过程当中尽可能不用书中的数据和案例,用我本身公众号文章的数据和案例。


这样显得更接地气一点,学的也更深入。


变量分为「名义变量」「等级变量」「连续性变量」。


「名义变量」为无序分类变量。


好比豆瓣电影TOP250数据里的「国家」「电影名称」。


「等级变量」为有序分类变量。


好比数据分析岗数据里的「学历」「工做经验」。


「连续型变量」为连续型变量在规定范围区间内能够被任意取值。


好比豆瓣电影TOP250数据里的「年份」「评分」「评分人数」。



/ 02 / 相关分析


在上面,咱们简述了变量的类型,也举了相关例子。


接下来咱们针对两连续变量关系检验,进行相关分析


使用豆瓣TOP250里的数据,研究排名评价分数之间的关系。


读取数据并清洗。


 
 

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

# 读取文件
df = pd.read_csv('douban.csv', header=0, names=["quote""score""info""title""people"])
(dom1, dom2, dom3, dom4) = ([], [], [], [])
# 清洗数据,获取电影年份及国家,增长年份列及国家列
for i in df['info']:
    country = i.split('/')[1].split(' ')[0].strip()
    if country in ['中国大陆''台湾''香港']:
        dom1.append(1)
    else:
        dom1.append(0)
    dom2.append(int(i.split('/')[0].replace('(中国大陆)''').strip()))
df['country'] = dom1
df['year'] = dom2
# 清洗数据,创建评价人数列
for i in df['people']:
    dom3.append(int(i.replace('人评价''')))
df['people_num'] = dom3
# 生成电影排名列表
dom4 = [x for x in range(1251)]
df['rank'] = dom4
print(df)


在那一期的排名评分人数三维度图里,咱们知道排名越靠前,评价人数越多,评分越高。


这只是咱们直观上的推测,并非用数据确确实实展现的。


相关分析就能够用数据来证实咱们本次猜想的正确性。


首先咱们经过散点图来看排名与评价分数之间的关系,看是否有所相关。


 
 

# scatter为散点图
df.plot(x='rank', y='score', kind='scatter')
plt.show()


这里因为排名排序问题显现出线形负相关,不过这并不影响分析。


你就默认正相关就好,即排名越靠前,分数越高。


image.png


经过散点图咱们发现数据有线性相关关系。


那么就能使用皮尔逊(Pearson)相关系数对两变量的相关关系进行分析。


 
 

# corr()方法:计算两两相关的列,不包括NA/Null值 persion:标准相关系数
print(df[['rank''score']].corr(method='pearson'))


输出两变量相关系数,绝对值约为0.70,查表可知相关程度为高度。


image.png

那么结论就显而易见,排名与评价分数之间的关系为线性正相关!!!


相关分析除了经过相关系数分析,还能够经过散点矩阵图。


对多个变量之间的相关关系进行分析,去探索变量间的关系。


 
 

# seaborn回归/散点图
sns.pairplot(df[['score''people_num''year''country''rank']])
plt.show()


生成以下散点图,能够发现rank与score及people_num相关性较大(右上角两个图)。


image.png


接下来建立分组变量,指定国家为分组变量,来看中国和外国的豆瓣电影TOP250数据状况。


 
 

# 生成带辅助线的散点图矩阵,hue:分类
sns.pairplot(df[['score''people_num''year''country''rank']], hue='country', kind='reg', diag_kind='kde', size=1.5)
plt.show()


在这里能观察数据的拟合线及上下浮动范围,更加直观的了解变量间的状况。


不过国家分类却是没什么发现,可能与数据样本过少有关。


image.png



/ 03 / 总结


本次只是一个简单的相关分析案例,里面涉及太多的数学知识我就不赘述了。


看了这本书我才知道,我要学的东西真的多...


不过能结合以前的相关案例去分析,我以为就很不错了。


可以学以至用,有本身的想法。


文末点个赞,比心!!!





···  END  ···


image.png

相关文章
相关标签/搜索