本篇文章是作者对常国珍著的python数据科学的学习的干货总结。
数据链接:
链接:https://pan.baidu.com/s/1Qy9cc5-vTHkwQVDEd7x_dg
提取码:m0p9
本篇文章主要有以下四个部分:
目录
1.数理统计技术概论
1.1 描述性分析
描述性分析就是从总体数据提炼变量的主要信息,即统计量。
1.2 统计推断与统计建模
统计推断与统计建模的含义是建立解释变量与被解释变量之间可解释、稳定的、最好具有因果关系的表达式。
2.数据挖掘技术与方法
数据挖掘的方法分为描述性与预测性两种。
2.1 描述性数据挖掘
定义:分析具有多个属性的数据集,找出潜在的模式和规律,没有因变量。
应用场景:观察个体之间的相似程度,发现产品的相关性等
主要算法:聚类、关联分析、因子分析、主成分分析等
2.2 预测性数据挖掘
定义:用一个或多个自变量预测因变量的值。
场景:客户是否会违约是一个因变量,可以用客户的性别、年龄、收入、职位、经济状况等因素进行预测。
主要算法:决策树、线性回归、Logistic回归、支持向量机、神经网络、判别分析
3.预测类模型
3.1 排序类分类器
应用场景:目标的类别不能被稳定的辨识,例如,汽车违约贷款模型中,客户逾期多长时间不还款能被定义违约?
重要特征:对行为结果建模或排序选择(行为是内心决策的外在表现),被解释变量是人为定义的。
3.2 决策类分类器
应用场景:具有普遍标准的,能够被清晰识别的,例如,在客户交易欺诈类模型中,交易欺诈是一种被法律定义的违法行为,一旦满足既定标准,客户的行为就会被定义为欺诈。
重要特征:被解释变量是客观存在的。
4.描述性分析
Import pandas as pd
Import numpy as np
Import matplotlab.pyplot as plt
Import os
snd = pd.read_csv(“sndHsPr.csv”)
district = {'fengtai':'丰台区','haidian':'海淀区','chaoyang':'朝阳区','dongcheng':'东城区','xicheng':'西城区','shijingshan':'石景山区'}
snd['district'] = snd.dist.map(district)
#axis=1 代表列 axis=0 代表行
#apply函数代表使用括号中的函数,故下面一行代码的意义即是price和AREA的每行数据相乘
snd["all_pr2"]=snd[["price","AREA"]].apply(lambda x:x[0]*x[1], axis = 1 )
#各district的房子数量
snd.district.values_count()
#价格均值
snd.price.mean()
#价格中位数
snd.price.median()
#价格方差
snd.price.std()
#价格偏度
snd.price.skew()
#价格的均值、中位数、总和、方差、偏度
snd.price.agg([‘mean’,’median’,’sum’,’std’,’skew’])
#价格的分位数
snd.price.quantile(0.25,0.5,0.75)
#价格的连续分布(柱状,40个)
snd.price.hist(bins=40)
#district和school的列联表
sub_sch = pd.crosstab(snd.district,snd.school)
#柱状图
sub_sch.plot(kind = “bar”)
#堆叠图
sub_sch.plot(kind = “bar”,stacked=True)
#stack2dim 堆叠图
from stack2dim import *
Stack2dim(snd,i=”district”,stacked=True)
#按district分组的价格均值升序条形图
snd.price.groupby(snd.district).mean().sort_values(ascending= True).plot(kind = 'barh')
#双轴图
gdp = pd.read_csv('gdp_gdpcr.csv',encoding = 'gbk')
x = list(gdp.year)
GDP = list(gdp.GDP)
GDPCR = list(gdp.GDPCR)
fig = plt.figure()
#创建子图
ax1 = fig.add_subplot(111)
ax1.bar(x,GDP)
ax1.set_ylabel('GDP')
ax1.set_title("GDP of China(2000-2017)")
ax1.set_xlim(2000,2018)
#第二个轴
ax2 = ax1.twinx()
ax2.plot(x,GDPCR,'r')
ax2.set_ylabel('Increase Ratio')
ax2.set_xlabel('Year')