读书笔记数据科学入门————统计学
2016-09-10 15:21
169 查看
本章摘要:
统计学是我们赖以理解数据的数学和技术。数据集的描述:
凭借口碑与运气,融资部门的副总如果问你的成员有多少朋友的时候,来确定他潜在的演说对象。当然很容易生成这个数据,但是如何描述这个数据集合呢?
对于数据集合,最简单的描述方法就是描述数据本身
num_friends = [100,49,41,40,25]
对于足够小的数据集,这甚至可以说是最好的描述方法。但随着数据规模变大,那么就很笨拙了。
如何进行提升呢?我们可以用统计来提炼和表达数据的相关特征。
friend_counter = Counter(num_friends)
>>> friend_counter
Counter({33: 1, 100: 1, 40: 1, 41: 1, 49: 1, 21: 1, 55: 1, 25: 1, 31: 1})
>>> plt.bar(xs,ys)
<Container object of 101 artists>
>>> plt.axis([0,101,0,25])
[0, 101, 0, 25]
>>> plt.xlabel('num of friends')
<matplotlib.text.Text object at 0x04D949D0>
>>> plt.ylabel('num of people')
<matplotlib.text.Text object at 0x04DAB990>
>>> plt.show()
可以获得关于朋友数量的直方图,但是很难进行交流那么需要提炼重要的统计量。
可能对最值感兴趣 max min,
也可能对特定位置的值感兴起,sorted_value = sorted(num_friends)
sorted_value[0] sorted_value[1],sorted_value[-2]
中心倾向
我们常常需要了解的是数据中心位置的一些概念,常用的方法就是用均值的方法进行计算>>> def mean(x):
return sum(x)/len(x)
如果是两个数据点那么均值就以为这两个点的中间点。锁着数据集点数增加,均值就会移动。取决每个点的取值。
中位数就是数据中心的点值,或者中间两个点平均值
和均值不同的是中位数不依赖于每一个数据的值。例如最大的点进行变化,但是中间的数据点不会变化。中位数不会变化
def median(v):
n = len(v)
sorted_v = sorted(v)
midpoint = n/2
if n%2==1:
return sorted_v[midpoint]
else:
lo = midpoint-1
hi = midpoint
return (sorted_v[lo]+sorted_v[hi])/2
所以计算中位数首先需要对数据进行 排序,中位数不一定随着数据变化。
均值对于数据中异常值非常敏感,而中位数不敏感,如果异常值属于不良数据,那么均值会误导我们。
中位数还有个泛化的概念是分位数,表示的是数据中特定百分比的一个值。中位数表示小于百分之50的数据一个值
def quantile(x,p):
p_index = int(p*len(x))
return sorted(x)[p_index]
quantile(num_friends,0.1)#1
quantile(num_friends,0.25)#3
还有个概念是众数是指出现次数最多的一个数
def mode(x):
counts = Counter(x)
max_count = max(counts.values())
return [x_i for x_i,count in counts.iteritems() if count==maxcount]
离散度
离散度是数据离散程度度量,如果值是0那么表示数据聚集一起。如果值很大表示离散度很大最简单是极差 最大和最小元素的差
def data_range(x):
return max(x) - min(x)
另外一个度量是方差
def d_mean(x):
x_bar = mean(x)
return [x_i - x_bar for x_i in x]
def variance(x):
n = len(x)
deviations = de_mean(x)
return sum_of_squares(deviataions)/(n-1)
相关
为了研究两个度量值之间的关系,引入了相关性的讨论相关性中首先介绍协方差,和方差是一个对应的词语。方差衡量是单个变量对于均值的偏离程度,而协方差研究的是两个变量对于均值的串联偏离程度。
def covariance(x,y):
n = len(x)
return dot(de_mean(x),de_mean(y))/(n-1)
由于点乘是对应元素相乘以后求和。如果向量x和向量Y对应元素同时大于自身的均值,或者同时小于自身的均值,那么是个正值。
但是协方差单独研究很少,那么我们引入了相关的概念。通过协方差除以两个变量的标准差
def correlation(x,y):
stdev_x = standard_deviation(x)
stdev_y = standard_deviation(y)
if stdev_x>0 and stdev_y>0:
return covariance(x,y)/stdev_x/stdev_y
else:
return 0
辛普森悖论
是指分析数据的时候可能发生的意外。具体而言,如果忽略的了混杂的变量,相关系数会有误导性。
比如你将所有会员分成南数据科学家以及西数据科学家,验证哪边更加友好。
那么得出更加友好的特征向量可能是阳光,咖啡,农产品。
但是分析数据的时候可能出现错误分析,如果仅仅比较有博士学位的那么这些特征向量确实可以表述,
但是如果没有博士学位的那么就结果相反相关系数就会发生变换。说白了就是忽略了一些关键变量。就是在假设其他条件相同时进行比较时候,可能还存在另外
类型的更深的分配,那么就需要充分了解自己的数据。
上述讨论的相关问题,也可以导致另外一种术语描述,叫做因果,如果强相关那么可能x引起了y或者y引起了x。
那么如何进行验证呢,可以将具有类似的统计数据用户分成2组,对其中一组加上不同的影响因素,然后看是否有不同的结果。
相关文章推荐
- 读书笔记数据科学入门————可视化数据
- 读书笔记数据科学入门————线性代数
- 【译文】数据科学的统计学入门
- 读书笔记数据科学入门————数据科学导论
- 读书笔记数据科学入门————Python快速入门
- 读书笔记数据科学入门————概率
- 读书笔记数据科学入门————梯度下降
- 读书笔记-数据科学实战-Capt2_汽车数据可视化分析
- Python 数据科学入门
- 【读书笔记】统计学:从数据到结论 第十章
- Python 数据科学入门教程:机器学习:回归
- 【读书笔记】统计学:从数据到结论 第六章
- 数据科学入门—线性代数
- Python进行数据科学工作的简单入门教程
- 数据科学 怎样进行大数据的入门级学习?(转)
- 一文读懂机器学习、数据科学、深度学习和统计学之间的区别
- Python 数据科学入门教程:Matplotlib
- 【读书笔记】统计学:从数据到结论 第八章
- Python进行数据科学工作的简单入门教程
- 【读书笔记】统计学:从数据到结论 第七章