机器学习的本质就是对条件概率或概率分布的估计,一直以来,对这个知识点总是似懂非懂,偶然间看到这篇文章,学习+实践记录如下:
关键词:用简单易懂的方法讨论置信区间和置信度、python简单实现
尽管置信区间和置信度是非常基础的一个术语,但是我们有时很难完全理解置信区间到底是什么,为什么我们需要它。
假设你想知道美国有多少人热爱足球。为了得到100%正确的答案,你可以做的唯一一件事是向美国的每一位公民询问他们是否热爱足球。根据维基百科,美国有超过3.25亿的人口。与3.25亿人口谈话并不现实,因此我们必须通过问更少的人来得到答案。
我们可以通过在美国随机抽取一些人(与更少的人交谈)并获得热爱足球的人的百分比来做到这一点,但是我们不能100%确信这个数字是正确的,或者这个数字离真正的答案有多远。所以,我们试图实现的是获得一个区间,例如,对这个问题的一个可能的答案是:我95%相信在美国足球爱好者的比例是58%至62%。这就是置信区间名字的来源,我们有一个区间,并且我们对它有一定的信心。
非常重要的是,我们的样本是随机的,我们不能只从我们居住的城市中选择1000人,因为这样就不能很好地代表整个美国。保持样本的随机性是非常重要的。
因此,我们假设随机抽取了1000个美国人的样本,我们发现,在1000人中有63%的人喜欢足球,我们能假设(推断)出整个美国人口的情况吗?
为了回答这个问题,我希望我们以一个不同的方式来看待它。假设我们知道(理论上)美国人的确切比例,假设他是65%,那么随机挑选1000人只有63%的人喜欢足球的机会是多少?让我们用python来探索这个问题!
love_soccer_prop = 0.65
total_population = 325*10**6
num_people_love_soccer = int(total_population * love_soccer_prop)
num_people_donot_love_soccer = int(total_population*(1-love_soccer_prop))
people_love_soccer = np.ones(num_of_people_who_love_soccer)
people_donot_love_soccer = np.zeros(num_people_donot_love_soccer)
all_people = np.hstack([people_love_soccer, people_dont_love_soccer])
print np.mean(all_people)
好吧,写到一半,发现有中文译本,那就搬运一下啦。