—
计算工具
本文使用python3作为编程语言,同时结合一整套数字于可视化标准,这些标准都是在商业应用、科学实验、开源项目中被广泛采纳。python激发了那些通过数据得出结论的教授的热情。学习python语言,你就相当于加入了有着百万软件开发人员于数据科学家的社区。
让我开始吧
(这一段主要是申请伯克利大学的python在线编程环境,可以试试,实在不行就在自己电脑上搭建python开发环境,也不是什么难事。)
统计技术
统计原则和数据科学一样面临着根本上的挑战:怎样通过不完整的信息获得令人信服的符合现实情况的结论?统计学最重要的贡献是运用连续性与精确性的术语来描述观察样本与结论之间的关系。本文将继续保持传统,聚焦于来源于统计的核心推理问题的集合:假设验证、可靠性预估、质量确定性的预测。
数据科学通过充分利用计算,数据可视化,机器学习,优化和信息访问的优势,扩展了统计领域。高速计算机和Internet的结合使任何人都可以访问和分析庞大的数据集:数百万条新闻报道,完整的百科全书,任何领域的数据库以及大量的音乐,照片和视频存储库。
实际数据集的应用激发了我们在全文中描述的统计技术。实际数据通常不遵循规则模式或与标准方程式匹配。通过将过多的注意力放在诸如平均值之类的简单汇总上,可能会丢失真实数据中有趣的变化。计算机启用了一系列基于重采样的方法,这些方法适用于各种不同的推理问题,并考虑了所有可用信息,并且只需要很少的假设或条件。尽管这些技术通常被保留用于统计学高级课程,但它们的灵活性和简单性自然适合于数据科学应用。
为什么选择数据科学?
仅通过部分信息和不确定的结果即可做出最重要的决策。但是,通过访问大数据集和有效分析它们所需的计算工具,可以大大降低许多决策的不确定性。数据驱动的决策已经改变了包括金融,广告,制造业和房地产业在内的众多行业。同时,各种各样的学科正在迅速发展,以将大规模数据分析纳入其理论和实践。
学习数据科学使个人能够将这些技术用于他们的工作,科学事业和个人决定。批判性思维长期以来一直是严格教育的标志,但是在有数据支持的情况下,批评通常是最有效的。对世界任何方面(包括商业或社会科学)的批判性分析都涉及归纳推理;结论很少能被彻底证明,而只能得到现有证据的支持。数据科学提供了对任何一组观测值进行精确,可靠和定量论证的手段。有了对信息和计算的前所未有的访问,如果没有有效的推理技术,就无法衡量世界上任何方面的批判性思维。
世界上有太多未解决的问题和艰巨的挑战,因此只有少数几位专家可以把这个关键的推理留给别人。社会上所有受过教育的成员都可以建立推理数据的能力。工具,技术和数据集都很容易获得;本文旨在使所有人都可以使用它们。
绘制经典
在此示例中,我们将探讨两本经典小说的统计数据:马克·吐温(Mark Twain)的《哈克贝利·费恩历险记》和路易莎·梅·奥尔科特(Louisa May Alcott)的《小女人》。任何书籍的文字都可以由计算机快速读取。 1923年之前出版的书籍目前处于公共领域,这意味着每个人都有权以任何方式复制或使用该文本。 Gutenberg项目是一个在线发布公共领域图书的网站。使用Python,我们可以直接从Web加载这些书的文本。
此示例旨在说明本文的一些广泛主题。如果程序的细节还没有意义,请不要担心。相反,请专注于解释下面生成的图像。本文的后面各节将描述下面使用的Python编程语言的大多数功能。
首先,我们将这两本书的文本读入章节列表,分别称为huck_finn_chapters和little_women_chapters。在Python中,名称不能包含任何空格,因此我们经常使用下划线_来代替空格。下方各行中的=在左侧描述的某些计算结果的左侧。统一资源定位符或URL是Internet上某些内容的地址。在这种情况下,是一本书的文字。 #符号开始注释,该注释将被计算机忽略,但对阅读代码的人员很有帮助。
Read two books, fast!
huck_finn_url = ‘https://www.inferentialthinking.com/data/huck_finn.txt'
huck_finn_text = read_url(huck_finn_url)
huck_finn_chapters = huck_finn_text.split(‘CHAPTER ‘)[44:]
little_women_url = ‘https://www.inferentialthinking.com/data/little_women.txt'
little_women_text = read_url(little_women_url)
little_women_chapters = little_women_text.split(‘CHAPTER ‘)[1:]
虽然计算机无法理解书中的文本,但它可以为我们提供一些有关文本结构的见识。名称huck_finn_chapters当前绑定到本书所有章节的列表。我们可以将它们放在表格中,以查看每一章的开始方式。
Display the chapters of Huckleberry Finn in a table.
Table().with_column(‘Chapters’, huck_finn_chapters)
每章以罗马数字的章号开头,后跟该章的第一句。古腾堡计划(Project Gutenberg)用大写字母印刷了每一章的第一个单词。
文学人物
《哈克贝利·芬恩历险记》描述了哈克和吉姆在密西西比河上的旅程。当行动升温时,汤姆·索亚(Tom Sawyer)将他们加入到最后。加载完文本后,我们可以快速查看书中任意位置分别提及这些字符的次数。
Count how many times the names Jim, Tom, and Huck appear in each chapter.
counts = Table().with_columns([
‘Jim’, np.char.count(huck_finn_chapters, ‘Jim’),
‘Tom’, np.char.count(huck_finn_chapters, ‘Tom’),
‘Huck’, np.char.count(huck_finn_chapters, ‘Huck’)
])
Plot the cumulative counts:
how many times in Chapter 1, how many times in Chapters 1 and 2, and so on.
cum_counts = counts.cumsum().with_column(‘Chapter’, np.arange(1, 44, 1))
cum_counts.plot(column_for_xticks=3)
plots.title(‘Cumulative Number of Times Each Name Appears’, y=1.08);
chapter
在上图中,水平轴显示章节编号,垂直轴显示每个字符在该章节之前(包括该章节)被提及的次数。
您可以看到Jim的名字出现了很多次,他是一个中心人物。请注意,在汤姆到达并加入第30章之后加入赫克和吉姆之前,几乎没有提到汤姆。在那一点上,他的曲线和吉姆急剧上升,因为涉及两者的行为都在加剧。至于哈克,他的名字几乎没有出现,因为他是叙述者。
《小女人》是内战期间四个姐妹一起成长的故事。在本书中,用大写字母拼写了章节编号,并用大写字母写出了章节标题。
The chapters of Little Women, in a table
Table().with_column(‘Chapters’, little_women_chapters)
我们也可以跟踪提到主要人物的内容,以了解这本书的内容。主角乔经常与她的姐妹梅格,贝丝和艾米互动,直到第27章,她独自一人搬到纽约。
Counts of names in the chapters of Little Women
counts = Table().with_columns([
‘Amy’, np.char.count(little_women_chapters, ‘Amy’),
‘Beth’, np.char.count(little_women_chapters, ‘Beth’),
‘Jo’, np.char.count(little_women_chapters, ‘Jo’),
‘Meg’, np.char.count(little_women_chapters, ‘Meg’),
‘Laurie’, np.char.count(little_women_chapters, ‘Laurie’),
])
Plot the cumulative counts.
cum_counts = counts.cumsum().with_column(‘Chapter’, np.arange(1, 48, 1))
cum_counts.plot(column_for_xticks=5)
plots.title(‘Cumulative Number of Times Each Name Appears’, y=1.08);
chapter
劳里(Laurie)是一个年轻人,最终与其中一个女孩结婚。看看是否可以使用这些图来猜测哪一个。
另一种性格
在某些情况下,数量之间的关系使我们能够做出预测。本文将探讨如何基于不完整的信息做出准确的预测,并开发出结合多种不确定信息源进行决策的方法。
作为可视化来自多个来源的信息的示例,让我们首先使用计算机来获取一些手工收集会很乏味的信息。在小说的上下文中,“字符”一词具有第二个含义:印刷符号,例如字母,数字或标点符号。在这里,我们要求计算机对Huckleberry Finn和Little Women的每一章中的字符数和句点数进行计数。
In each chapter, count the number of all characters;
call this the “length” of the chapter.
Also count the number of periods.
chars_periods_huck_finn = Table().with_columns([
‘Huck Finn Chapter Length’, [len(s) for s in huck_finn_chapters],
‘Number of Periods’, np.char.count(huck_finn_chapters, ‘.’)
])
chars_periods_little_women = Table().with_columns([
‘Little Women Chapter Length’, [len(s) for s in little_women_chapters],
‘Number of Periods’, np.char.count(little_women_chapters, ‘.’)
])
以下是Huckleberry Finn的数据。表格的每一行对应于小说的一章,并显示该章中的字符数和句点数。毫不奇怪,字符较少的章节通常也具有较少的句点:通常,章节越短,句子越少,反之亦然。但是,这种关系并不是完全可以预测的,因为句子的长度各不相同,并且可能涉及其他标点符号,例如问号。
chars_periods_huck_finn
您会看到《小女人》的章节通常比哈克贝利·芬(Huckleberry Finn)的章节更长。让我们看看这两个简单的变量(每章的长度和周期数)是否可以告诉我们有关这两本书的更多信息。一种方法是在同一轴上绘制两组数据。
在下面的图中,每本书的每个章节都有一个点。蓝色圆点对应于Huckleberry Finn,金色圆点对应于Little Women。横轴表示周期数,纵轴表示字符数。
plots.figure(figsize=(6, 6))
plots.scatter(chars_periods_huck_finn.column(1),
chars_periods_huck_finn.column(0),
color=’darkblue’)
plots.scatter(chars_periods_little_women.column(1),
chars_periods_little_women.column(0),
color=’gold’)
plots.xlabel(‘Number of periods in chapter’)
plots.ylabel(‘Number of characters in chapter’);
该图向我们显示,《小妇人》的许多但并非所有章节都比哈克贝利·芬恩的章节更长,正如我们通过查看数字所观察到的。但这也向我们展示了更多。请注意,蓝点和黄点如何大致围绕直线聚集。而且,似乎点的两种颜色都可能聚集在同一条直线上。
现在看一下包含大约100个期间的所有章节。该图显示这些章节大约包含10,000到15,000个字符。每个期间大约100到150个字符。
实际上,从图上可以看出,平均而言,两本书之间的时间间隔通常在100到150个字符之间,这是非常粗略的估计。也许这两部19世纪伟大的小说正在传达出我们现在非常熟悉的东西:Twitter的140个字符的限制。
因果关系和实验
“这些问题已经并将可能永远存在于大自然的秘密之中。它们属于人类智能根本无法解决的一类问题。” — 1849年9月的《伦敦时报》,霍乱如何传播和传播?死刑有威慑作用吗?巧克力对您有好处吗?什么原因导致乳腺癌?
所有这些问题都试图将原因归结为结果。仔细检查数据可以帮助阐明此类问题。在本节中,您将学习建立因果关系的一些基本概念。
观察是掌握科学的关键。一项观察性研究是科学家根据他们观察到但无人参与的数据得出结论的研究。在数据科学中,许多此类研究涉及对一组个体的观察,一个称为治疗的关注因素以及对每个个体进行测量的结果。
最容易将个人视为人。在一项关于巧克力是否对健康有益的研究中,个人确实是人,治疗方法是吃巧克力,其结果可能是心脏病的量度。但是观察研究中的个人不必是人。在一项关于死刑是否具有威慑作用的研究中,个人可能是联盟的50个州。一项允许死刑的州法律将作为治疗手段,结果可能是该州的谋杀率。
基本的问题是治疗是否对结果有影响。治疗与结果之间的任何关系都称为关联。如果治疗导致结果发生,则关联是因果关系。因果关系是本节开头提出的所有三个问题的核心。例如,问题之一是巧克力是否直接导致健康改善,而不仅仅是巧克力与健康之间是否存在关系。
因果关系的建立通常分两个阶段进行。首先,观察到关联。接下来,进行更仔细的分析会得出因果关系的决定。
观察和可视化:约翰·斯诺和宽街泵
最终导致因果关系确立的敏锐观察的最有力例子之一,可以追溯到150年前。为了让您的想法正确,请想象一下1850年代的伦敦。那是世界上最富裕的城市,但它的许多人却极度贫穷。当时名声鼎盛的查尔斯·狄更斯(Charles Dickens)正在写关于他们的困境的文章。在城市的较贫穷地区,疾病盛行,霍乱是最令人恐惧的疾病之一。尚不知道细菌会引起疾病。最主要的理论是“偏头痛”是罪魁祸首。 as气表现为难闻的气味,被认为是由腐烂物质引起的看不见的有毒颗粒。伦敦的部分地区确实闻起来非常难闻,尤其是在炎热的天气中。为了保护自己免受感染,那些负担得起将闻起来香气扑鼻的人。
几年来,一位名叫约翰·斯诺(John Snow)的医生一直在追踪不时袭击英国的霍乱。该疾病突然到来,几乎立即致命:人们在感染该疾病后的一两天内死亡,一周内有数百人可能死亡,单波死亡总数可能达到数万人。斯诺对as瘤理论表示怀疑。他注意到,尽管整个家庭被霍乱所摧毁,但邻近房屋中的人们有时仍未受到任何影响。当他们呼吸与邻居相同的空气和—气时,难闻的气味与霍乱的发生之间没有令人信服的联系。
斯诺还注意到,这种疾病的发作几乎总是与呕吐和腹泻有关。因此,他认为感染是由人们吃或喝的东西引起的,而不是由他们呼吸的空气引起的。他的主要犯罪嫌疑人是被污水污染的水。
1854年8月底,霍乱在人满为患的伦敦苏豪区(Soho)袭击。随着死亡人数的增加,斯诺用一种不断研究疾病传播的标准方法勤奋地记录下来:他画了一张地图。在该地区的街道地图上,他记录了每一次死亡的地点。
这是斯诺的原始地图。每个黑条代表一个死亡。如果在同一地址有多个死亡,则与这些死亡对应的条形图会彼此堆叠。黑色的圆盘标记了水泵的位置。该地图显示了惊人的启示-死亡人数大致集中在Broad Street水泵周围。
斯诺仔细研究了他的地图,并调查了明显的异常。所有这些都牵涉到Broad Street的抽水机。例如:
在比鲁普特街水泵更近的鲁珀特街水泵附近的房屋中,有一些人死亡。尽管Rupert Street的水泵在乌鸦飞翔时更近,但由于死角和街道布局,到达那里不太方便。这些房屋中的居民改用Broad Street的水泵。
在泵以东的两个街区没有死亡。那是狮子啤酒厂的所在地,工人们在那里喝酒。如果他们想要水,啤酒厂也有自己的水井。
在距离布罗德街泵站数个街区的房屋中,零星的人死了。那些是孩子们在上学的路上从宽街上的水泵里喝了酒。众所周知,水泵清凉爽口。
支持斯诺理论的最后证据是在距苏活区很远的绿树成荫的汉普斯特德地区和汉普斯特德地区的两次孤立死亡提供的。斯诺对此感到困惑,直到他得知死者是曾经住在宽街的苏珊娜·埃利夫人和她的侄女。每天,Eley夫人都会从Broad Street的泵中抽出水送到Hampstead。她喜欢它的味道。
后来发现,距离Broad Street泵井只有几英尺远的一个污水坑正在泄漏到井中。因此,泵的水被霍乱受害者房屋的污水污染了。
斯诺用他的地图说服地方当局拆除了Broad Street泵的把手。尽管霍乱流行时已经在减弱,但禁用泵可能阻止了今后因该病浪潮而造成的许多死亡。
拆除Broad Street泵把手已成为传奇。在亚特兰大疾病控制中心(CDC),当科学家们寻找有关流行病的简单答案时,他们有时会互相问:“这台泵的手柄在哪里?”
Snow的地图是数据可视化最早,最强大的用途之一。现在,各种疾病地图已成为跟踪流行病的标准工具。
因果关系
尽管地图清楚地表明了斯诺的强大迹象,表明供水的清洁是控制霍乱的关键,但与令人信服的科学论点相距甚远,该论点是受污染的水正在引起霍乱的蔓延。为了提出更令人信服的案例,他不得不使用比较方法。
科学家使用比较来确定治疗与结果之间的关联。他们将接受治疗的一组人(治疗组)的结果与未接受治疗的一组人(对照组)的结果进行比较。例如,今天的研究人员可能会将有死刑的州的平均谋杀率与没有死刑的州的平均谋杀率进行比较。
如果结果不同,则表明存在关联。但是,要确定因果关系,还需要更多的注意。
斯诺的“大型实验”
在他从Soho中学到的东西的鼓舞下,Snow完成了更全面的分析。一段时间以来,他一直在收集伦敦地区的霍乱死亡数据,该数据由两家自来水公司提供服务。 Lambeth自来水公司将其上游水从那里排入泰晤士河的污水中。它的水比较干净。但是Southwark and Vauxhall(S&V)公司将水抽到污水排放口以下,因此其供应受到污染。
下图显示了两家公司服务的区域。在两个服务区域重叠的区域,积雪磨砺。
斯诺注意到,由S&V提供的人员和由Lambeth提供的人员之间没有系统上的区别。 “每个公司都为富人和穷人提供住房,无论是大房子还是小房子;接受不同水公司的水的人的状况或职业都没有差异……接受这两家水公司的房屋或人的水都没有差异,他们被包围了……”
唯一的区别是供水方面的问题:“向一组供应含有伦敦污水的水,其中,霍乱患者可能来自其中,而另一组则完全不含杂质。”
确信自己将能够得出明确的结论,斯诺总结了下表中的数据。
这些数字指责S&V。 S&V房屋中霍乱的死亡率几乎是Lambeth提供的房屋中死亡率的十倍。
建立因果关系
在本节前面开发的语言中,您可以将S&V房屋中的人员视为治疗组,将Lambeth房屋中的人员视为对照组。在斯诺的分析中,一个关键因素是,除了治疗方法外,两组人彼此之间具有可比性。
为了确定是否是造成霍乱的水源,斯诺不得不将两组在其他方面相似的组进行比较,除了一个方面外,它们的水源。只有这样,他才能够将其结果的差异归因于供水。如果这两组人在其他方面也有所不同,那将很难将手指指向作为疾病根源的供水。例如,如果治疗组由工厂工人组成,而对照组则没有,则两组之间的结果差异可能是由于供水,工厂工作或两者兼而有之。最终的图片会更加模糊。
斯诺的才华在于确定两个小组,这可以使他的比较清楚。他开始着手在受污染的水和霍乱感染之间建立因果关系,即使毒瘤主义者无视他,甚至嘲笑他,他在很大程度上也成功了。当然,斯诺不了解人类感染霍乱的详细机制。这项发现是在1883年做出的,当时德国科学家罗伯特·科赫(Robert Koch)分离了霍乱弧菌,这种细菌进入人的小肠并引起霍乱。
实际上,霍乱弧菌是在1854年由意大利的菲利波·帕西尼(Filippo Pacini)识别的,就在斯诺在伦敦分析其数据时。由于义大利主义主义者的统治地位,帕奇尼的发现使未知之光黯然失色。但是到了1800年代末,mi族旅已撤退。后来的历史证明了帕奇尼和约翰·斯诺的成功。斯诺的方法导致了流行病学领域的发展,这是对疾病传播的研究。
混淆
现在,让我们回到更现代的时代,带着我们在此过程中学到的重要教训:
在一项观察性研究中,如果治疗组和对照组的治疗方式不同,则很难得出因果关系的结论。
两组之间的根本差异(治疗除外)称为混杂因素,因为当您试图得出结论时,它可能会使您感到困惑(即,使您陷入困境)。
例如:咖啡和肺癌。 1960年代的研究表明,喝咖啡的人比不喝咖啡的人患肺癌的几率更高。因此,一些人认为咖啡是导致肺癌的原因。但是咖啡不会引起肺癌。该分析包含一个混杂因素-吸烟。在那些日子里,喝咖啡的人也很可能是吸烟者,吸烟确实会引起肺癌。喝咖啡与肺癌有关,但并未引起该病。
混杂因素在观察研究中很常见。好的研究非常注意减少混淆并考虑其影响。
随机化
避免混淆的一种极好的方法是将患者随机分配到治疗组和对照组,然后对分配给治疗组的患者进行治疗。随机分组使两组在治疗方面相似。
如果您能够将个体随机分为治疗组和对照组,则您正在运行随机对照实验,也称为随机对照试验(RCT)。有时,人们在实验中的反应会受到他们所属小组的了解的影响。因此,您可能想进行一个盲目的实验,使个体不知道他们属于治疗组还是对照组。为了使这项工作有效,您必须给对照组服用安慰剂,这看起来与治疗完全一样,但实际上没有效果。
长期以来,随机对照实验一直是医学领域的金标准,例如用于确定新药是否有效。它们也正越来越广泛地用于其他领域,例如经济学。
示例:墨西哥的福利补贴。在1990年代的墨西哥乡村中,贫穷家庭中的孩子常常没有上学。原因之一是大一点的孩子可以上班,从而帮助养家。墨西哥财政部部长圣地亚哥·列维(Santiago Levy)着手调查是否可以使用福利计划来增加入学率和改善健康状况。他对一组村庄进行了随机对照研究,随机选择其中一些村庄,以接受一项名为PROGRESA的新福利计划。如果他们的孩子定期上学,并且该家庭使用了预防性医疗保健,该计划就会向贫困家庭提供资金。如果孩子在中学里,要给孩子比在小学里更多的钱,以补偿孩子的工资损失,给女孩上学的钱要比给男孩的钱多。其余村庄没有得到这种待遇,因此组成了对照组。由于随机化,没有混淆因素,可以确定PROGRESA增加了入学率。对于男孩,入学率从对照组的73%增加到PROGRESA组的77%。对于女孩来说,增长幅度更大,从对照组的67%增长到PROGRESA组的近75%。由于这项实验的成功,墨西哥政府以新名称OPORTUNIDADES支持了该计划,作为对健康和受过良好教育的人群的一项投资。
在某些情况下,即使目的是调查因果关系,也可能无法进行随机对照实验。例如,假设您想研究怀孕期间饮酒的影响,并且将一些孕妇随机分配到“酒精”组中。如果给他们喝酒,不要期望他们的合作。在这种情况下,您几乎总是要进行观察性研究,而不是进行实验。警惕混杂因素。
尾注
在我们开发的术语中,约翰·斯诺(John Snow)进行了一项观察性研究,而不是一项随机实验。但是他称自己的研究为“巨大实验”,因为正如他所写的那样,“至少有三十万人……在没有他们选择的情况下被分为两组,在大多数情况下,在他们没有知识的情况下……”
诸如Snow的研究有时也称为“自然实验”。但是,真正的随机化并不仅仅意味着“没有选择”就选择了治疗组和对照组。
随机化方法可以像扔硬币一样简单。它也可能要复杂得多。但是每种随机化方法都包含一系列经过仔细定义的步骤,这些步骤可以通过数学方式确定机会。这有两个重要的后果。
它使我们能够从数学上解释随机化产生的治疗组和对照组之间完全不同的可能性。
它使我们能够就治疗组和对照组之间的差异做出精确的数学陈述。反过来,这有助于我们就治疗是否有效产生合理的结论。
在本课程中,您将学习如何进行和分析自己的随机实验。这将比本章介绍的内容涉及更多细节。现在,仅关注主要思想:尝试建立因果关系,如果可能的话,进行随机对照实验。如果您正在进行观察性研究,您也许可以建立关联,但是很难建立因果关系。在基于观察性研究得出因果关系的结论之前,请特别小心混杂因素。
术语
观察研究
治疗
结果
协会
因果关联
因果关系
比较
治疗组
控制组
流行病学
混杂
随机化
随机对照实验
随机对照试验(RCT)
盲
安慰剂
有趣的事实
约翰·斯诺(John Snow)有时被称为流行病学之父,但他是一名麻醉师。他的病人之一是维多利亚女王,她是分娩期间麻醉的早期接受者。
弗洛伦斯·南丁格尔(Florence Nightingale)是现代护理实践的创始人,并以在克里米亚战争中的工作而闻名。她是顽固的戒毒主义者。她没有时间去研究有关传染病和细菌的理论,也不是一个刻薄的人。她说:“与这一学说有关的荒谬行为没有止境。” “可以说,在一般意义上,没有任何证据可以像在任何科学询问中所承认的那样,存在任何传染性的东西。”
后来的RCT确定,PROGRESA坚持要求的条件(儿童上学,预防性保健)对于增加入学率不是必需的。仅福利金的财政刺激就足够了。
用Python编程
编程可以极大地提高我们收集和分析有关世界的信息的能力,而这又可以通过上一部分中演示的仔细推理而导致发现。在数据科学中,编写程序的目的是指示计算机执行分析步骤。计算机不能独自研究世界。人们必须准确描述计算机为了收集和分析数据应采取的步骤,这些步骤通过程序表示。
资料类型
每个值都有一个类型,内置的type函数返回任何表达式结果的类型。
我们已经遇到的一种类型是内置函数。 Python指示类型为builtin_function_or_method;在此阶段,功能和方法之间的区别并不重要。
顺序
可以将值分组到集合中,这使程序员可以组织这些值并使用单个名称引用所有值。通过将值分组在一起,我们可以编写代码,一次对许多数据执行计算。
在多个值上调用函数make_array会将它们放入数组,这是一种顺序集合。下面,我们将四个不同的温度收集到称为高温的阵列中。这些分别是1850年,1900年,1950年和2000年左右几十年来地球上所有陆地的估计平均每日高温(以摄氏度为单位),表示为与1951年至1980年之间的平均绝对高温的偏差(即14.48)度。
baseline_high = 14.48
highs = make_array(baseline_high - 0.880, baseline_high - 0.093,
baseline_high + 0.105, baseline_high + 0.684)
highs
array([ 13.6 , 14.387, 14.585, 15.164])
集合使我们可以使用单个名称将多个值传递给函数。例如,sum函数计算集合中所有值的总和,len函数计算其长度。 (这就是我们放入其中的值的数量。)将它们一起使用,我们可以计算集合的平均值。
Tables
表是表示数据集的基本对象类型。可以通过两种方式查看表:
一系列命名列,每个命名列描述数据集中所有条目的一个方面,或者
一系列的行,每个行包含有关数据集中单个条目的所有信息。
可视化
表格是组织和可视化数据的强大方法。但是,无论数字表如何组织,大数字表都难以解释。有时,解释图要比数字容易得多。
在本章中,我们将开发一些数据分析的基本图形方法。我们的数据源是Internet电影数据库,它是一个在线数据库,其中包含有关电影,电视节目,视频游戏等的信息。售票处Mojo网站提供了许多IMDB数据摘要,其中一些已经我们进行了修改。我们还使用了The Numbers的数据摘要,该网站的标语是“数据和电影业务的交汇处”。
…………省略关于python的基本函数方法的介绍……….
测试假设
数据科学家经常面临关于世界的是与否的问题。您在本课程中已经看到了此类问题的一些示例:
巧克力对您有好处吗?
Broad Street的水泵是否引起霍乱?
在过去的十年中,加利福尼亚的人口统计发生了变化吗?
我们是否回答此类问题取决于我们拥有的数据。有关加利福尼亚的人口普查数据几乎可以解决所有人口统计问题,而答案几乎没有任何不确定性。我们知道Broad Street的泵水被霍乱受害者的废物污染,因此我们可以对它是否引起霍乱做出很好的猜测。
巧克力还是其他任何治疗方法对您是否有益,几乎肯定要由医学专家来决定,但是第一步是使用数据科学来分析研究和随机实验的数据。
在本章中,我们将根据随机样本和经验分布得出的结论,尝试回答是非问题。
评估模型
在数据科学中,“模型”是一组有关数据的假设。通常,模型包括有关用于生成数据的机会过程的假设。
有时,数据科学家必须决定其模型是否良好。在本节中,我们将讨论做出此类决策的两个示例。在后面的部分中,我们将使用此处开发的方法作为检验假设的通用框架的基础。
美国最高法院,1965年:斯温诉阿拉巴马州
1960年代初期,在阿拉巴马州的塔拉迪加县,一个名叫罗伯特·斯温的黑人被判犯有强奸白人妇女的罪名,被判处死刑。他以全白人陪审团为由对他的判决提出上诉。当时,仅允许21岁以上的男性在塔拉迪加县担任陪审团成员。在该县,合格的陪审员中有26%是黑人,但在斯温的审判中,被选为陪审团的100名黑人中只有8名黑人。没有黑人被选为陪审团。
1965年,美国最高法院驳回了斯温的上诉。法院在裁决中写道:“……总体差距很小,没有反映出有人试图研究包括或排除一定数量的黑人。”
评审团应该从符合条件的人群中随机选择。因为有26%的合格人口是黑人,所以100个小组中的8个黑人似乎偏低。
A Model
但是数据的一种看法(换句话说,就是模型)是,随机选择了该小组,由于偶然的缘故,最终只有少数黑人。这种模式与最高法院的裁决一致。
该模型指定机会过程的详细信息。它说,数据就像是来自26%的黑人人口的随机样本。我们很适合评估此模型,因为:
我们可以基于模型模拟数据。也就是说,我们可以随机模拟26%的黑人人口中的绘画。
我们的仿真将显示如果随机选择面板,面板的外观。
然后,我们可以将模拟结果与Robert Swain小组的组成进行比较。
如果我们的模拟结果与Swain小组的组成不一致,那么这将是反对随机选择模型的证据。
让我们详细了解一下该过程。
The Statistic
首先,我们必须选择一个统计数据进行模拟。统计数据必须能够帮助我们在模型和关于数据的备用视图之间做出决定。模型说面板是随机绘制的。罗伯特·斯温(Robert Swain)的呼吁提出了另一种观点,即该小组并非随机抽取,因为其中的黑人人数太少。因此,自然的统计数据是我们代表小组的100名模拟样本中的黑人人数。统计数据的较小值将有利于替代观点。
模型下的统计预测
如果模型为真,那么统计量通常为多少?为了回答这个问题,我们必须首先确定模拟的细节。
生成统计的一个值
首先,让我们弄清楚如何模拟一个统计值。为此,我们必须从符合资格的陪审员中随机抽取100次,并计算得到的黑人人数。
一种方法是像上一章一样建立代表合格人口的表格并使用样本。但是,还有一种更快的方法,使用为从分类分布中随机抽样而量身定制的数据科学功能。我们将在本章中多次使用它。
数据科学库中的sample_proportions函数采用两个参数:
样本量
类别在总体中的分布,作为总计为1的比例列表或比例数组
它返回一个数组,该数组包含从总体中抽取的给定大小的随机样本中类别的分布。该数组由所有不同类别中的样本比例组成。
要了解如何使用此功能,请记住,根据我们的模型,该小组是从一群男性中随机选择的,其中26%是黑人,而74%不是黑人。因此,这两个类别的分布可以表示为列表[0.26,0.74],我们已将其分配给名称qualified_population。现在,让我们从此分布中随机抽取100次样本,并查看样本中这两种类别所占的比例。
那很简单!随机样本中的黑人比例是输出数组的item(0)。
因为样本中有100名男性,所以每个类别中的男性人数是比例的100倍。因此,我们可以轻松地模拟计数而不是比例,并且仅访问黑人的计数。
运行模拟
为了在不反复运行单元的情况下了解可变性,让我们生成10,000个计数的模拟值。
该代码遵循我们在每次仿真中使用的相同步骤。首先,我们使用上面编写的代码定义一个函数来模拟一个计数值。
def one_simulated_count():
return (100 * sample_proportions(100, eligible_population)).item(0)
接下来,我们使用for循环创建10,000个模拟计数的数组
counts = make_array()
repetitions = 10000
for i in np.arange(repetitions):
counts = np.append(counts, one_simulated_count())
预测
为了解释我们的模拟结果,我们像往常一样以经验直方图可视化结果。
Table().with_column(
‘Count in a Random Sample’, counts
).hist(bins = np.arange(5.5, 46.6, 1))
chapter
直方图告诉我们随机选择模型对我们的统计数据(样本中的黑人人数)有何预测。
为了生成每个模拟计数,我们从26%的黑人中随机抽取了100次。因此,正如您所期望的,大多数模拟计数大约为26。它们不完全是26:有些差异。计数范围从大约10到大约45。
比较预测和数据
尽管模拟的计数变化很大,但很少有人得出八或更少的数字。值八在直方图的左尾很远。它是直方图水平轴上的红点。
Table().with_column(
‘Count in a Random Sample’, counts
).hist(bins = np.arange(5.5, 46.6, 1))
plots.scatter(8, 0, color=’red’, s=30);
模拟显示,如果我们从符合条件的人群中随机选择一个由100名陪审员组成的小组,我们极不可能获得像Swain陪审团中的八名一样低的黑人人数。这证明专家组中陪审员的随机选择模型与专家组的数据不一致。
当数据和模型不一致时,很难对模型进行论证。毕竟,数据是真实的。该模型只是一组假设。当假设与现实不符时,我们必须质疑那些假设。
虽然可能像偶然地生成了像Robert Swain的面板那样,但我们的模拟表明,这是不太可能的。因此,我们的评估是证据不支持随机抽取模型。斯温的陪审团看起来不像是从合格陪审员群体中随机抽样的结果。
这种评估模型的方法非常通用。这是一个示例,其中我们使用它来评估完全不同的环境中的模型。
孟德尔的豌豆花
孟德尔(Gregor Mendel,1822-1884年)是一位奥地利僧侣,他被广泛认为是现代遗传学领域的创始人。孟德尔在植物上进行了仔细而大规模的实验,以找出遗传学的基本定律。
他的许多实验都针对豌豆植物。他针对每种品种制定了一系列假设。这些是他的模型。然后,他通过种植植物和收集数据来测试模型的有效性。
让我们分析一个这样的实验的数据,看看孟德尔模型是否良好。
在特定的品种中,每种植物都有紫色的花朵或白色的花朵。每个植物中的颜色不受其他植物中颜色的影响。孟德尔假设植物应以3:1的比例随机开花紫色或白色的花朵。
孟德尔模型
对于每种植物,不管其他所有植物的颜色如何,都有75%的机会会出现紫色的花朵,而有25%的机会会出现白色的花朵。
评估方法
为了评估孟德尔模型,我们可以在模型的假设下模拟植物并查看其预测。然后,我们将能够将预测与孟德尔记录的数据进行比较。
The Statistic
我们的目标是查看孟德尔的模型是否良好。我们需要模拟一个可以帮助我们做出决定的统计数据。
如果模型很好,则样本中紫色植物的百分比应接近75%。如果模型不好,则紫色开花百分比将偏离75%。可能更高或更低;方向无关紧要。
对我们而言,关键是样品中紫色植物的百分比与75%之间的距离。距离太远证明该模型不好。
因此,我们的统计数据是样本百分比与75%之间的距离:
模型下的统计预测
要查看如果孟德尔模型为真,则距离将有多大,我们可以使用sample_proportions在模型假设下模拟距离。
首先,我们必须确定要采样多少次。为此,请记住,我们要将模拟与孟德尔的工厂进行比较。因此,我们应该模拟他拥有的相同数量的植物。
孟德尔种了很多植物。有929种与该模型相对应的植物。因此,我们必须采样929次。
生成统计的一个值
计算步骤:
从模型指定的分布中随机取样929次,并在紫色类别中找到样本比例。
将比例乘以100得到百分数。
减去75并求出差的绝对值。
这就是统计数据:样本百分比与75之间的距离。
我们将首先定义一个函数,该函数采用一个比例并返回相应百分比与75之间的绝对差。
def distance_from_75(p):
return abs(100*p - 75)
为了模拟紫色植物样本百分比与75%之间的距离的一个值,在孟德尔模型的假设下,我们必须首先在该模型假设下模拟929种植物中紫色植物的比例,然后然后从75%计算出差异。
model_proportions = [0.75, 0.25]
proportion_purple_in_sample = sample_proportions(929, model_proportions).item(0)
distance_from_75(proportion_purple_in_sample)
1.7491926803014053
这是孟德尔模型所预测的紫色植物样本百分比与75%之间的距离的一个模拟值。
运行模拟
为了了解距离的可变性,我们必须对其进行多次模拟。
我们将生成10,000个距离值。和以前一样,我们将首先使用上面开发的代码来定义一个函数,该函数返回一个模拟值孟德尔的假设。
…省略一点点….
观察到的统计数据就像模型预测的典型距离。通过这种方法,数据与我们在孟德尔模型假设下生成的直方图一致。这是支持该模型的证据。
多个类别
我们已经开发了一种评估机会过程模型的方法,该过程会生成两类数据。该方法扩展到涉及多个类别数据的模型。评估过程与以前相同,唯一的区别是我们必须提出一个新的统计数据进行模拟。
让我们在一个示例中进行处理,该示例可以解决与Robert Swain的陪审团一样的问题。这次,数据是最新的。
阿拉米达县的评审团选择
2010年,北加利福尼亚的美国公民自由联盟(ACLU)提交了一份关于加利福尼亚州阿拉米达县的陪审团选择的报告。报告得出结论,阿拉米达县的陪审团成员中某些族裔的代表人数不足,并建议对合格的陪审员分配给陪审团的程序进行一些改革。在本节中,我们将对数据进行自己的分析,并检查由此产生的一些问题。
有关陪审团和陪审团的一些细节将有助于解释我们的分析结果。
陪审团
陪审团是一群被选为准陪审员的人。从其中选出最后的陪审团。陪审团可以由几十人或几千人组成,具体取决于审判情况。根据法律,陪审团应该代表进行审判的社区。加利福尼亚州《民事诉讼法》第197条规定:“所有被选择出任陪审员的人应从包括法院所服务地区代表性代表在内的一个或多个来源中随机选择。”
最终评审团是通过故意纳入或排除而从专家组中选出的。法律允许出于医疗原因免除潜在陪审员的责任;双方的律师可以在“强制性挑战”中从名单中剔除一定数量的潜在陪审员;主审法官可以根据小组填写的问卷进行选择;等等。但是最初的小组应该类似于合格陪审员群体的随机样本。
阿拉米达县小组的组成
北加利福尼亚州ACLU的研究重点是阿拉米达县陪审团的种族组成。美国公民自由联盟汇编了阿拉米达县在2009年和2010年进行的11项重罪审判中陪审团种族组成的数据。在这些陪审团中,报告参加陪审团的总人数为1,453。 ACLU收集了所有这些陪审团陪审员的人口统计数据,并将这些数据与该县所有合格陪审员的组成进行了比较。
数据列在下表中,称为陪审团。对于每个种族,第一个值是该种族所有合格陪审员候选人的比例。第二个价值是该族裔人士在进入陪审团的过程中所占的比例。
与随机选择的小组的比较
如果我们从符合资格的陪审员中随机抽取1,453人作为样本怎么办?他们的种族分布看起来是否像上面面板的分布一样?
我们可以通过使用sample_proportions并在陪审团表中增加一列示例中的比例列来回答这些问题。
技术说明。未来陪审员的随机样本将被选择而不进行替换。但是,当样本数量相对于总体数量而言较小时,不进行替换的采样类似于进行替换的采样;抽签之间人口比例没有太大变化。阿拉米达县符合条件的陪审员人数超过一百万,相比之下,大约1500名的样本量很小。因此,我们将提供样品更换。
在下面的单元格中,我们从符合条件的陪审员的分布中随机抽样1453次,并在数据中显示随机样本的分布以及符合条件的陪审员和面板的分布。
条形图表明,随机样本的分布类似于合格的总体,但面板的分布却与之不同。
为了评估此观察结果是特定于一个随机样本还是更特定的样本,我们可以在随机选择模型下模拟多个面板,然后查看模拟预测。但是,我们将无法查看上图所示的数千个条形图。我们需要一个统计数据,以帮助我们评估数据是否支持模型或随机选择。
新统计:两个分布之间的距离
我们知道如何测量两个数字的区别–如果数字是𝑥和𝑦,则它们之间的距离为| 𝑥−𝑦 |。 现在我们必须量化两个分布之间的距离。例如,我们必须测量下面的蓝色和金色分布之间的距离。
为此,我们将计算一个称为两个分布之间的总变化距离的量。该计算是对两个数字之间距离的计算的扩展。
为了计算总变化距离,我们首先计算每个类别中两个比例之间的差。
看一下“差异”列,注意其项的总和为0:正项的总和为0.14,恰好抵消了负项的总和-0.14。
这是在条形图中金条超过蓝条的数量与蓝条超过金的数量一样多的事实的数字证据。 “面板”和“合格”两列中的每一列的比例总计为1,因此,它们之间的取舍必须总计为0。
为了避免取消,我们删除负号,然后添加所有条目。但这给了我们正数条目总数的两倍(相当于,负数条目总数的两倍,去掉了符号)。因此,我们将总和除以2。
数量0.14是合格陪审员中的种族分布与面板中的分布之间的总变异距离(TVD)。
只要加上正差异,我们就可以得到相同的结果。但是,我们将所有绝对差异都包括在内的方法消除了跟踪哪些差异是正的和哪些不是正面的需要。
模拟统计的一个值
我们将使用分布之间的总变化距离作为模拟的统计量。这将有助于我们确定随机选择模型是否良好,因为较大的距离值将证明该模型无效。
请记住,我们的统计数据的观察值为0.14(如上所述)。
由于我们将重复计算总变化距离,因此我们将编写一个函数来计算它。
函数total_variation_distance返回两个数组的分布之间的TVD。
def total_variation_distance(distribution_1, distribution_2):
return sum(np.abs(distribution_1 - distribution_2)) / 2
此功能将帮助我们在每次重复仿真中计算统计信息。但是首先,让我们检查一下当我们使用它来计算上面的蓝色(合格)分布和金色(面板)分布之间的距离时,是否给出了正确答案。
total_variation_distance(jury.column(‘Panels’), jury.column(‘Eligible’))
0.14
这与我们不使用函数直接计算出的值一致。
在下面的单元格中,我们使用该函数来计算合格陪审员的分布与一个随机样本之间的TVD。这是用于模拟统计数据一个值的代码。回想一下合格的人口是包含合格陪审员分布的数组。
sample_distribution = sample_proportions(1453, eligible_population)
total_variation_distance(sample_distribution, eligible_population)
0.0202202339986235
请注意,该距离比面板分布和合格陪审员之间的距离0.14小得多。
随机选择模型下的统计预测
随机样本的分布与合格陪审员之间的总变化距离是我们用来测量两个分布之间的距离的统计量。通过重复采样过程,我们可以看到统计量在不同的随机样本之间有多少变化。
下面的代码根据随机抽样过程的大量重复来模拟统计信息,并遵循我们通常的模拟步骤顺序。我们首先定义一个函数,该函数在随机选择的假设下返回总变化距离的一个模拟值。然后,在for循环中使用我们的函数创建一个包含5,000个此类距离的tvds数组。
Simulate one simulated value of
the total variation distance between
the distribution of a sample selected at random
and the distribution of the eligible population
def one_simulated_tvd():
sample_distribution = sample_proportions(1453, eligible_population)
return total_variation_distance(sample_distribution, eligible_population)
tvds = make_array()
repetitions = 5000
for i in np.arange(repetitions):
tvds = np.append(tvds, one_simulated_tvd())
模拟距离的经验直方图显示,从合格候选人池中随机抽取1453名陪审员会导致分布很少偏离合格陪审员的种族分布超过约0.05。
Table().with_column(‘TVD’, tvds).hist(bins=np.arange(0, 0.2, 0.005))
评估随机选择模型
但是,研究中的小组与合格人群不太相似。面板和总体之间的总变化距离为0.14,在上面的直方图的尾部很远。它看起来完全不像是随机样本与合格人群之间的典型距离。
面板中的数据与基于随机选择模型的统计数据的预测值不一致。因此,我们的分析支持ACLU的计算,即专家组不能代表为合格陪审员提供的分配。
差异的一些可能解释
但是,与大多数此类分析一样,我们的分析没有说明为什么分布不同或差异可能意味着什么。
ACLU报告讨论了导致差异的几种可能原因。例如,一些少数群体在选民登记和汽车部的记录中所占的比例不足,这是从中选出陪审员的两个主要来源。在研究时,该县没有有效的程序来跟进被召唤但未能出庭的准陪审员。 ACLU还列出了其他一些原因。无论出于何种原因,似乎很明显,陪审团的组成与我们从“合格”列中的分布中随机抽样的预期不同。
有关数据的问题
我们已经开发了一种强大的技术,可以帮助确定一个分布是否看起来像来自另一个分布的随机样本。但是,数据科学的意义不仅仅在于技术。特别是,数据科学始终涉及对如何收集数据的深入研究。
合格的陪审员。首先,重要的是要记住,并非每个人都有资格担任陪审团成员。阿拉米达县高等法院在其网站上说:“如果您年满18岁,是美国公民,而且是被召唤的县或地区的居民,您可能会被要求服务。您必须能够听懂英语,此外,在过去的12个月内,您不得担任任何陪审员,也不得被定罪。
“为了确定阿拉米达县符合陪审团资格的人口的统计数据,我们使用了一份声明,该声明是为2002年阿拉米达县对People诉Stuart Alexander案的审判而准备的。声明中,圣地亚哥州立大学的人口统计学家Weeks教授,利用2000年的人口普查数据估算了阿拉米达县符合陪审员资格的人口。为了得出这一估计数,威克斯教授考虑了不具备陪审员资格的人数,因为他们不会说英语,不是公民,未满18岁或有重罪的人,因此,他的估算应该是对谁真正有资格在阿拉米达县出任陪审员的准确评估,而不仅仅是简单地查看阿拉米达人的种族和族裔普查报告县:但是,应该指出的是,威克斯教授所依赖的人口普查数据现在已有十年之久,该县的人口统计数据可能已经变化了两三个百分点。进入某些类别。”
因此,在分析中使用的合格陪审员的种族分布本身只是一种估计,可能有些过时。
面板。此外,并非从整个合格人群中选出小组。阿拉米达县高级法院说:“法院的目的是提供该县人口的准确剖面图。陪审员的姓名是从每个已注册选民和/或具有驾驶执照或机动车部门签发的身份证。”
所有这些都提出了有关如何准确估计阿拉米达县合格陪审员种族组成的复杂问题。
目前尚不清楚1453名小组成员如何划分为不同的种族类别(美国公民自由联盟的报告说,“律师……合作收集了陪审团的数据”)。存在严重的社会,文化和政治因素,这些因素会影响谁被归类或自我归类到每个种族类别。我们也不知道面板中这些类别的定义是否与Weeks教授所使用的定义相同,Weeks教授又在估算过程中使用了人口普查类别。因此,也存在关于被比较的两个分布之间的对应关系的问题。
因此,尽管我们对表中的数据有一个明确的结论-面板看起来不像是为符合资格的陪审员提供的分布中的随机样本-但有关数据性质的问题使我们无法得出更广泛的结论。
决策与不确定性
通过比较观察到的数据与模型所做出的预测,我们已经看到了评估涉及机会的模型的几个示例。在我们所有的示例中,毫无疑问数据是否与模型的预测一致。数据要么离预测值很远,要么离预测值很近。
但是结果并不总是那么清晰。 “远”有多远? “关闭”到底是什么意思?尽管这些问题没有通用答案,但是您可以遵循一些准则和约定。在本节中,我们将描述其中一些。
但是首先让我们建立一个决策的通用框架,所有示例都将适合于该框架。
我们在评估模型时开发的是假设统计检验的一些基本概念。在许多领域中,使用统计测试作为决策的方法是标准的,并且具有标准的术语。这是大多数统计测试中的步骤顺序,以及一些术语和示例。您将看到它们与我们用于评估模型的步骤顺序一致。
步骤1:假设
所有统计检验都试图在两种世界观之间进行选择。具体来说,在关于如何生成数据的两个视图之间进行选择。这两种观点称为假设。
原假设。这是关于机会的明确定义的模型。它说数据是在明确指定的随机性假设下随机生成的。 “空”一词强化了这样一种观念,即如果数据看上去与空假设所预测的不同,则差异是由于偶然而已。
从实践的角度来看,原假设是可以模拟数据的假设。
在有关孟德尔豌豆植物颜色模型的示例中,零假设是他的模型的假设很好:每棵植物都有75%的机会开花紫色花,而与所有其他植物无关。
在此假设下,我们可以使用sample_proportions(929,[0.75,0.25])模拟随机样本。我们使用的样本数量为929,因为这是孟德尔种植的植物数量。
替代假设。这表示,除了偶然性之外,还有其他一些原因使数据与原假设中的模型预测有所不同。
在有关孟德尔植物的示例中,替代假设只是他的模型不好。
步骤2:测试统计
为了在两个假设之间做出决定,我们必须选择一个可以用来做出决定的统计量。这称为测试统计量。
以孟德尔的植物为例,我们的统计数据是他的模型预测的样本百分比与75%之间的绝对差。
要了解总体上如何进行选择,请查看替代假设。统计量的哪些值会使您认为替代假设是比零假设更好的选择?
如果答案是“大价值”,那么您可能有一个很好的统计选择。
如果答案是“小价值”,那么也是如此。
但是,如果答案是“大值和小值”,我们建议您再次查看统计信息,看看采用绝对值是否可以将答案更改为“大值”。
对于豌豆植物,大约75%的样本百分比将与该模型一致,但是如果百分比大于或小于75,将使您认为该模型不好。这表明统计量应该是样本百分比与75之间的距离,即它们之间的差的绝对值。较大的距离值将使您倾向于替代方法。
测试统计量的观察值是您从研究中的数据中获得的统计量的值,而不是模拟值。在孟德尔的929株植物中,有705朵紫色。因此,检验统计量的观察值为
abs ( 100 * (705 / 929) - 75)
0.8880516684607045
步骤3:在零假设下的检验统计量的分布
假设检验的主要计算方面是弄清楚如果零假设为真,则检验统计量的值可能是多少。
检验统计量是基于模型在原假设中的假设进行模拟的。该模型涉及机会,因此,当您多次对其进行仿真时,统计数据将以不同的方式出现。
通过反复模拟该统计信息,我们可以很好地了解其可能的值以及哪个值比其他值更可能发生。换句话说,正如模型在原假设中所预测的那样,我们可以很好地近似统计量的概率分布。
与所有分布一样,通过直方图可视化此分布非常有用。我们在所有示例中都这样做。
步骤4.测试结论
在原假设和替代假设之间进行选择取决于您在步骤2和3中计算的结果之间的比较:测试统计的观察值及其由原假设预测的分布。
如果两者相互一致,则观察到的检验统计量将与原假设相符。换句话说,检验并不指向替代假设。数据可以更好地支持原假设。孟德尔模型的评估就是这种情况。
但是,如果两者不一致(如我们在阿拉米达县陪审团的例子中那样),则数据不支持原假设。因此,我们得出的结论是,并非随机选择陪审团。偶然因素影响了他们的构成。
如果数据不支持原假设,我们说检验会拒绝原假设。
“一致”的含义
在有关阿拉米达县陪审团的例子中,很明显,我们观察到的检验统计量与原假设所预测的相差甚远。在有关豌豆花的示例中,很明显观察到的统计数据与null预测的分布一致。因此,在两个示例中,都清楚选择了哪种假设。
但是有时候这个决定不是很明确。在原假设下,观察到的检验统计量是否与其预测分布相一致是一个判断问题。我们建议您提供您的判断以及测试统计信息的值以及在null下的预测分布图。这样您的读者就可以对两者是否一致做出自己的判断。
这是一个需要决策的示例。
GSI的防御
大约有350名学生的伯克利统计课被分为12个讨论部分,由研究生讲师(GSI)领导。期中考试后,第3节的学生注意到他们的平均分数比班上其他同学的分数低。
在这种情况下,学生倾向于对本节的GSI抱怨。他们认为,GSI的教学肯定肯定有问题。否则,为什么他们的部门做得比其他人差?
GSI通常对统计变化比较有经验,通常会有不同的看法:如果您只是从整个班级中随机抽出一部分学生,那么他们的平均得分可能只是偶然地类似于学生不满意的得分。
GSI的职位是一个明确表述的机会模型。我们可以在此模型下模拟数据。让我们测试一下。
零假设。第3节中学生的平均分数类似于从班级中随机选择的相同数量学生的平均分数。
替代假设。不,太低了。
这里的自然统计是分数的平均值。较低的平均值将使我们倾向于替代方案。
让我们看一下数据。
表格分数包含班级中每个学生的节号和期中分数。中期分数是介于0到25之间的整数; 0表示该学生未参加考试。
…………
常规临界值和P值
如果您不想做出自己的判断,则可以遵循一些约定。这些约定告诉我们尾巴有多远被认为是“太远了”。
约定基于尾部的面积,从观察到的统计量(红点)开始,并朝着使我们倾向于替代方案的方向(在本例中为左侧)看。如果尾巴的面积很小,则观察到的统计量将与零假设最常预测的值相去甚远。
请记住,在直方图中,面积表示百分比。要找到尾部的面积,我们必须找到小于或等于第3部分(红点所在)的平均分数的样本平均值的百分比。数组sample_averages包含随机抽样的所有10,000次重复的平均值,observed_statistic为13.667,即第3节的平均得分。
大约5.7%的模拟随机样本平均值为13.667或以下。如果我们从整个班级中随机抽取第3节的学生,他们的平均成绩将达到13.667或更低的机会约为5.7%。
这个机会有一个令人印象深刻的名字。这称为测试的观察显着性水平。那是一个大嘴巴,因此通常称为测试的P值。
定义:测试的P值是基于零假设中的模型的机会,即测试统计量将等于样本中观察到的值,甚至在支持替代方法的方向上也是如此。**
如果P值很小,则意味着超出观察到的统计量的尾巴很小,因此观察到的统计量与零值的预测相距甚远。这意味着数据支持替代假设要比支持零假设更好。
“小”有多小?根据约定:
如果P值小于5%,则认为该值较小,结果称为“统计上显着”。
如果P值甚至更小(小于1%),则该结果称为“具有高度统计意义”。
按照这个约定,我们的5.7%的P值不算小。因此,我们必须得出这样的结论:GSI的防守保持良好–第3部分的平均得分就像是随机机会产生的得分。从形式上来说,测试结果在统计上并不重要。
当您以这种方式做出结论时,我们建议您不要只说结果是否具有统计意义。连同您的结论一起,提供观察到的统计量和P值,以便读者可以使用自己的判断。
公约的历史说明
如上所述,统计显着性的确定已成为所有应用领域中统计分析的标准。当一个公约如此普遍地被遵循时,检查它是如何产生的很有趣。
罗纳德·费舍尔爵士(Sir Ronald Fisher)在20世纪初期提出了统计检验的方法-根据随机样本中的数据在假设之间进行选择。罗纳德爵士(Sir Ronald)可能在1925年发表的《研究人员的统计方法》(Statistical Methods for Research Workers)一文中,在某种程度上不经意间就统计学意义上的约定作了规定。他写道,大约在5%的水平上,可以很方便地将这一点作为判断偏差是否被认为是重大的极限。
对于罗纳德爵士而言,“便利”变成了具有普遍常数地位的界限。不管罗纳德爵士本人是否认为价值是他个人从众多选择中做出的选择:他在1926年的一篇文章中写道:“如果二十分之一的赔率似乎不够高,我们可以,如果我们更喜欢它,就会吸引线以百分之五十(2%)或百分之一百(1%)的线表示。个人而言,作者更倾向于在5%处设置较低的显着性标准…”
Fisher知道“低”是一个判断问题,没有唯一的定义。我们建议您效法他的出色榜样。提供您的数据,做出判断,并解释您为什么这么做。
无论您使用常规截断还是您自己的判断,记住以下几点都很重要。
始终提供测试统计数据的观察值和P值,以便读者可以决定是否认为P值小。
仅当常规得出的结果不符合您的喜好时,才不要违背约定。
即使测试得出的结论是数据不支持原假设中的机会模型,它通常也无法解释该模型为何不起作用。
错误概率
在我们决定两个假设中的哪个更好地得到我们的数据支持的过程中,最后一步涉及对数据一致性和原假设的判断。尽管这一步骤在大多数情况下会导致做出明智的决定,但有时可能使我们误入歧途。原因是机会变化。例如,即使原假设为真,机会变化也可能导致样本看起来与原假设所预测的完全不同。
结论错误
如果您要针对原假设不成立的备选方案测试原假设,则可以通过四种方式对真实性和测试结果进行分类。
在此表的四个单元格中,有两个是错误的测试结果。如果检验支持替代假设,而实际上是零假设,则会发生一种错误。如果检验偏爱原假设,而实际上替代假设为真,则会发生另一种类型的错误。
由于零假设是一个完全指定的机会模型,因此我们可以估计第一类错误的机会。答案实际上是我们用于P值的截止点。让我们看看如何。
错误的机会
假设您要测试硬币是否公平。假设如下:
空:硬币是公平的。就是说,结果就像随机抽奖,由Heads,Tails替换一样。
替代方案:硬币不公平。
假设您要基于2000次投掷硬币来检验该假设。您可能希望一个公平的硬币在2000年中能有1000次落入正面,因此使用的合理检验统计量是
test statistic = ∣∣ number of heads−1000
此统计信息的较小值有利于原假设,而较大值有利于替代方案。
我们已经在原假设下多次模拟了该统计数据,并得出了其经验分布。
45右边的区域(金线所在的位置)约为5%。测试统计量的较大值有利于替代方法。因此,如果测试统计数据等于或大于45,则测试将得出该代币不公平的结论。
但是,如图所示,一个公平的硬币可以产生具有45或更大值的测试统计数据。实际上,这样做的可能性约为5%。
因此,如果硬币是公平的,而我们的测试使用5%的临界值来决定它是否公平,则测试将有5%的机会错误地得出该硬币不公平的结论。
P值的临界值为错误概率
如果您对P值使用𝑝%截止值,并且原假设恰好为真,那么您的测试将有大约alternative%的机会得出结论,即替代为真。
因此,1%的临界值比5%更为保守。如果null恰好为真,那么得出“替代”的可能性就较小。因此,医学上的随机对照试验通常使用1%作为临界值来决定以下两个假设:
零假设。治疗无效;观察到的治疗结果与对照组患者结果之间的差异是由于随机化。
替代假设。这种治疗有效果。
这个想法是为了控制得出结论,即实际上不采取任何措施的机会。这降低了给予患者无用治疗的风险。
尽管如此,即使您将临界值设置为低至1%,并且治疗无效,也仍有大约1%的机会得出结论,认为治疗有效果。这是由于偶然的变化。来自随机样本的数据极有可能导致您误入歧途。
数据监听和P破解
上面的讨论暗示着,如果100个不同的研究小组中的每个小组都对实际上没有任何作用的治疗效果进行了单独的随机对照实验,并且每个实验的P值均采用1%的临界值,那么偶然的变化会导致预期其中一项实验会错误地得出结论,该治疗确实有效。
不幸的是,那可能是被出版的。这就是为什么重复实验很重要的原因。也就是说,其他研究人员应该能够进行实验,看看他们是否获得了相似的结果。
研究人员使用相同的数据检验多个假设并不少见。例如,在关于药物作用的随机对照试验中,研究人员可能会测试药物是否对多种不同的疾病有作用。
现在假设该药物对任何东西都没有作用。只是偶然的变化,一小部分测试可能会得出结论,它确实有效果。因此,当您阅读一项使用假设检验的研究并得出结论,即一种治疗有效果时,请务必先询问要测试多少种不同的效果,然后研究人员才能找到所报告的效果。
如果研究人员在找到给出“具有统计学高度意义”结果的测试之前进行了多种不同的测试,请谨慎使用该结果。数据侦听可能会损害这项研究,这实质上意味着将数据折磨成虚假的表白。有时也称为p-hacking。
在这种情况下,验证报告结果的一种方法是通过复制实验并单独测试该特定效果。如果结果再次重要,那将验证原始结论。
技术说明:另一种错误
当然,还有另一种错误:得出结论,当治疗实际上无能为力时,它什么也没做。关于该错误的讨论超出了本课程的范围。请注意,生活并不容易:如果您设置测试以减少两个错误之一,则几乎总是增加另一个错误。
比较两个样本
我们已经看到了几个评估单个样本是否看起来像来自指定机会模型的随机抽取的示例。
阿拉米达县陪审团是否看起来像是来自合格陪审员群体的随机样本?
孟德尔种植的豌豆植物的颜色是否与他在模型中指定的机会一致?
在所有这些情况下,只有一个随机样本,我们正在尝试确定其生成方式。但通常,数据科学家必须将两个随机样本相互比较。例如,他们可能必须比较随机分配到治疗组和对照组的患者的结局。或者,他们可能使互联网用户随机接收了两个不同版本的网站,之后他们希望比较两个随机组的行为。
在本章中,我们将开发一种使用Python比较两个随机样本并回答有关它们之间的异同的问题。您将看到我们开发的方法具有多种应用。我们的例子来自医学,公共卫生以及足球!
A/B Testing
在现代数据分析中,确定两个数值样本是否来自相同的基础分布被称为A / B测试。名称是指两个样品A和B的标签。
我们将在一个示例的上下文中开发该方法。数据来自大型医院系统中的新生儿样本。尽管采样是分多个阶段进行的,但我们将其视为简单的随机样本。 Deborah Nolan和Terry Speed的Stat Labs提供了有关从中提取此数据集的较大数据集的详细信息。
吸烟者和不吸烟者
表格中的出生人数包含用于1,174对母婴的以下变量:婴儿的出生体重(以盎司为单位),胎龄,以年为单位的母亲的年龄,母亲的身高(以英寸为单位),妊娠体重(以磅为单位)以及是否母亲在怀孕期间抽烟。
该研究的目的之一是观察孕妇吸烟是否与出生体重有关。让我们看看我们能对两个变量说些什么。
我们将仅选择“出生体重”和“孕妇吸烟者”。样本中有715位非吸烟者女性和459位吸烟者。
让我们看一下非吸烟母亲与吸烟母亲的婴儿出生体重的分布。要生成两个重叠的直方图,我们将使用带有可选组参数hist的列标签或索引。首先按此列将表的行分组,然后为每个行绘制直方图。
吸烟的母亲所生婴儿的体重分布似乎略微位于对应于非吸烟母亲的分布左侧。吸烟的母亲的婴儿的体重似乎平均低于不吸烟者的婴儿的体重。
这就提出了一个问题,即差异是否仅反映了机会差异,还是较大人群中分布的差异。人口中的两个分布之间可能没有差异,但是我们正因为碰巧被选中的母亲而看到样本中的差异吗?
假设
我们可以尝试通过假设检验来回答这个问题。我们将要测试的机会模型表明,人口数量没有根本差异;样本中的分布因偶然而有所不同。
形式上,这是原假设。我们将必须弄清楚如何在此假设下模拟有用的统计数据。首先,让我们仅陈述两个自然假设。
零假设:在人口中,不吸烟的母亲和有吸烟的母亲的出生体重分布相同。样本中的差异是偶然的。
替代假设:在人口中,吸烟的母亲的婴儿出生体重平均低于不吸烟者的婴儿。
Test Statistic
另一种假设是比较两组的平均出生体重,并说吸烟母亲的平均体重较小。因此,使用两组均值之差作为我们的统计量是合理的。
我们将按照“吸烟组的平均体重-非吸烟组的平均体重”的顺序进行减法。此统计信息的较小值(即较大的负值)将支持替代假设。
我们将在下面的仿真中重复计算这种差异,因此我们将定义一个函数来完成这项工作。该函数接受三个参数:
数据表的名称
包含数值变量的列的标签,其平均值是有意义的
包含用于分组的布尔变量的列的标签
它返回True组和False组的均值之差。
零假设下的统计预测
要查看在原假设下统计量应如何变化,我们必须弄清楚如何在该假设下模拟统计量。一个基于随机排列的聪明方法可以做到这一点。
如果基本人口中的两个分布之间没有差异,那么出生体重在孕产妇吸烟方面是否带有“真”或“假”标签对平均值没有影响。因此,其想法是在母亲之间随机洗牌。这称为随机排列。
取两个新的组均值之差:母亲被随机标记为吸烟者的婴儿的平均体重和其余均被随机标记为不吸烟者的其余母亲的婴儿的平均体重。这是在原假设下测试统计量的模拟值。
表中有1,174行。要改组所有标签,我们将随机抽取1,174行样本,而不进行替换。然后,样本将以随机顺序包括表的所有行。
我们可以将Table方法示例与可选的with_replacement = False参数一起使用。我们不必指定样本大小,因为默认情况下,样本绘制的次数与表中的行数相同。
现在,每个婴儿的母亲在“随机标签”列中都有一个随机吸烟者/不吸烟者标签,而她的原始标签在“母亲吸烟者”中。如果原假设为真,则标签的所有随机重排都应同样可能。
两个随机选择的组的平均值比两个原始组的平均值更接近。我们可以使用我们的函数difference_of_means找到两个差异。
但是,不同的洗牌是否会导致组平均值之间更大的差异?为了了解变化,我们必须多次模拟差异。
与往常一样,我们将首先定义一个在原假设下模拟测试统计量值的函数。这仅仅是收集我们上面编写的代码的问题。但是因为稍后我们将要使用相同的过程来比较其他变量的均值,所以我们将定义一个带有三个参数的函数:
数据表的名称
包含数字变量的列的标签
包含用于分组的布尔变量的列的标签
排列测试
基于数据的随机排列的测试称为排列测试。在此示例中,我们正在执行一个。在下面的单元格中,我们将多次模拟测试统计量(两组平均值之间的差异),并将差异收集到一个数组中。
数组差异包含我们测试统计信息的5,000个模拟值:随机分配标签后,吸烟组平均体重与不吸烟组平均体重之间的差异。
测试结论
下面的直方图显示了这5,000个值的分布。它是在原假设下模拟的检验统计量的经验分布。这是基于原假设的关于测试统计量的预测。
注意分布如何以0为中心。这是有道理的,因为在零假设下,两组的平均值应大致相同。因此,组平均值之间的差异应约为0。
原始样本中观察到的差异约为-9.27盎司,甚至没有出现在直方图的水平刻度上。统计量的观察值与统计量在原假设下的预测行为不一致。
该测试的结论是,数据优于零值。吸烟的母亲所生婴儿的平均出生体重小于非吸烟者所生婴儿的平均出生体重。
另一个排列测试
我们可以使用相同的方法来比较吸烟者和非吸烟者的其他属性,例如他们的年龄。两组年龄的直方图显示,在样本中,吸烟的母亲倾向于年轻。
放气门
2015年1月18日,印第安纳波利斯小马队和新英格兰爱国者队参加了美式足球会议(AFC)冠军赛,以确定哪些球队将参加超级碗。赛后,有人指控爱国者队的足球没有按照规定膨胀。他们更柔软。这可能是一个优势,因为较软的球可能更容易接住。
几个星期以来,美式足球的世界被指责,否认,理论和猜疑所淹没:在1970年代水门事件中,新闻界将主题定为Deflategate。国家橄榄球联盟(NFL)进行了独立分析。在此示例中,我们将对数据进行自己的分析。
压力通常以磅/平方英寸(psi)为单位。 NFL规则规定,必须对游戏球充气,使其压力在12.5 psi和13.5 psi之间。每队比赛12球。球队有责任保持自己足球的压力,但比赛官员要检查球。在亚足联比赛开始之前,所有爱国者队的球都在约12.5 psi的压力下。小马驹的大部分球都在约13.0 psi。但是,没有记录这些赛前数据。
在第二节,小马队拦截了一个爱国者队的球。在场边,他们测量了球的压力,并确定其低于12.5 psi的阈值。他们及时通知官员。
在半场比赛中,所有比赛用球都被收集起来进行检查。两名官员克里特·布雷克曼(Clete Blakeman)和蒂罗尔·普里洛(Dyrol Prioleau)测量了每个球的压力。
这是数据。每行对应一个足球。压力以psi为单位。被小马队拦截的爱国者球在中场休息时未被检查。多数小马的球也不是-官员们时间不够,只好在下半场比赛开始时放弃球。
因果关系
我们比较两个样本的方法在随机对照实验分析中有强大的用途。由于治疗组和对照组在这些实验中是随机分配的,因此可以将其结果的差异与如果完全没有效果的偶然原因所导致的结果进行比较。如果观察到的差异比纯粹由于偶然原因所预测的差异更明显,我们将有因果关系的证据。由于将个体无偏向分配给治疗组和对照组,因此两组治疗结果的差异可以归因于治疗。
分析随机对照实验的关键是准确了解机会是如何进入画面的。这有助于我们建立明确的零假设和替代假设。完成之后,我们可以简单地使用前面几节中的方法来完成分析。
治疗慢性腰痛:随机对照试验
估算值
在上一章中,我们开始开发推理性思维的方法。特别是,我们学习了如何使用数据在关于世界的两个假设之间做出决定。但是通常我们只是想知道一件东西有多大。
例如,在前面的章节中,我们研究了敌人可能拥有多少架战机。在选举年中,我们可能想知道有多少百分比的选民赞成某个候选人。为了评估当前的经济状况,我们可能会对美国家庭的年收入中位数感兴趣。
在本章中,我们将开发一种估计未知参数的方法。请记住,参数是与总体关联的数值。
为了弄清楚参数的值,我们需要数据。如果我们拥有整个人口的相关数据,则可以简单地计算参数。
但是,如果人口非常大(例如,如果它由美国的所有家庭组成),那么从整个人口中收集数据可能太昂贵且耗时。在这种情况下,数据科学家依靠从总体中随机抽样。
这就引出了一个推断问题:如何根据随机样本中的数据得出有关未知参数的合理结论?我们将通过推理来回答这个问题。
基于随机样本的统计信息可以是总体中未知参数的合理估计。例如,您可能希望将抽样家庭的年平均收入用作对美国所有家庭的年平均收入的估计。
但是任何统计信息的值都取决于样本,并且样本是基于随机抽取。因此,每当数据科学家根据随机样本提出估计时,他们都会面临一个问题:
“如果样本得出的结果不同,那么这个估计有何不同?”
在本章中,您将学习回答这个问题的一种方法。答案将为您提供估计数字参数和量化估计误差的工具。
我们将从百分数的初步开始。最著名的百分位数是中位数,通常用于收入数据汇总。其他百分位在我们将要开发的估计方法中将很重要。因此,我们将从仔细定义百分比开始。
为何如此重要
在本课程中,我们研究了几种不同的统计数据,包括总变化距离,最大值,中位数以及均值。在关于随机性的明确假设下,我们绘制了所有这些统计数据的经验分布。一些变量,例如最大和总变化距离,具有明显朝一个方向或另一个方向倾斜的分布。但是,无论所研究的总体如何,样本均值的经验分布几乎总是接近钟形。
如果不考虑总体,随机样本的属性是真实的,则它将成为强大的推断工具,因为我们很少了解整个总体中的数据。大量随机样本的平均值分布属于此类属性。这就是为什么在数据科学中广泛使用随机样本均值的原因。
在本章中,我们将在仅对基础人群进行最小假设的情况下研究均值和我们能对它们说些什么。我们将要解决的问题包括:
这意味着什么呢?
大多数数据与平均值有多接近?
样本大小与样本均值的变异性有何关系?
为什么随机样本均值的经验分布呈钟形?
我们如何有效地使用样本均值进行推断?
预测
数据科学的一个重要方面是找出哪些数据可以告诉我们有关未来的信息。关于气候和污染的数据对未来几十年的温度有何影响?根据一个人的互联网资料,哪些网站可能会对他们感兴趣?如何使用患者的病史来判断他或她对治疗的反应如何?
为了回答这些问题,数据科学家已经开发出进行预测的方法。在本章中,我们将研究一种基于另一变量的值预测一个变量的值的最常用方法之一。
该方法的基础是弗朗西斯·加尔顿爵士(Francis Galton)奠定的。正如我们在7.1节所看到的,高尔顿研究了物理特性如何从一代传给下一代。他最著名的作品之一是根据父母的身高预测成年人的身高。我们已经研究了高尔顿为此收集的数据集。表格高度包含有关934名成人“儿童”的中父母身高和儿童身高(均以英寸为单位)的数据。
回归推断
到目前为止,我们对变量之间关系的分析仅是描述性的。我们知道如何找到最佳的散点图绘制直线。该直线在所有直线中具有最小的估计均方误差的意义上说是最好的。
但是,如果我们的数据只是来自更多人群的样本怎么办?如果在样本中我们发现两个变量之间存在线性关系,那么总体是否也一样?线性关系会完全一样吗?我们能否预测不在我们样本中的新个体的反应?
如果我们认为散点图反映了要绘制的两个变量之间的潜在关系,但没有完全指定该关系,则会出现这种推理和预测问题。例如,出生体重与胎龄的散点图向我们显示了样本中两个变量之间的精确关系。但是我们可能想知道,这种关系对于抽取样本的人口中的所有婴儿,或者实际上在一般婴儿中,是正确的还是几乎正确的。
与往常一样,推论思维始于仔细检查有关数据的假设。假设集称为模型。关于线性散布图中随机性的假设集称为回归模型。
分类
机器学习是一类技术,用于自动查找数据模式并使用其进行推断或进行预测。您已经看到了线性回归,这是一种机器学习。本章介绍了一个新的分类:分类。
分类是关于学习如何根据过去的示例进行预测。我们提供了一些示例,这些示例告诉我们正确的预测是什么,我们希望从这些示例中学习如何在将来进行良好的预测。以下是一些实际使用分类的应用程序:
对于亚马逊收到的每笔订单,亚马逊都会预测:该订单是欺诈性的吗?他们具有有关每个订单的一些信息(例如,其总价值,是否将订单运送到该客户以前使用过的地址,运送地址是否与信用卡持有人的帐单地址相同)。他们有很多有关过去订单的数据,并且他们知道哪些过去的订单是欺诈的,哪些不是欺诈的。他们想学习一些模式,以帮助他们预测新订单到达时这些新订单是否是欺诈性的。
在线约会网站想预测:这两个人兼容吗?他们会成功吗?他们拥有过去曾向客户建议的匹配项的大量数据,并且他们知道哪些成功了。随着新客户的注册,他们希望对谁可能是他们的最佳匹配做出预测。
医生想知道:这个病人有癌症吗?基于一些实验室测试的测量结果,他们希望能够预测特定患者是否患有癌症。他们有很多关于过去患者的数据,包括他们的实验室测量以及他们是否最终患上癌症,然后,他们想从中推断出哪些测量可能是癌症(或非癌症)的特征,以便于他们进行诊断未来的病人准确。
政治家想预测:您要为他们投票吗?这将帮助他们将筹款工作集中在可能会支持他们的人上,并将全力以赴的投票工作集中在将为他们投票的选民身上。公共数据库和商业数据库具有许多有关大多数人的信息:例如,他们是否拥有房屋或房租;他们生活在富裕社区还是贫困社区;他们的兴趣和爱好;他们的购物习惯;等等。政治运动对一些选民进行了调查,发现他们打算投票选谁,因此,他们提供了一些例子,说明了正确答案。从这些数据中,竞选活动希望找到可以帮助他们对所有其他潜在选民做出预测的模式。
所有这些都是分类任务。请注意,在每个示例中,预测都是一个是/否问题-我们称之为二进制分类,因为只有两个可能的预测。
在分类任务中,我们要进行预测的每个个人或情况都称为观察。我们通常有很多观察。每个观察值都有多个已知的属性(例如,亚马逊订单的总价值或选民的年薪)。此外,每个观察结果都有一个类,它是我们关心的问题的答案(例如,是否欺诈或是否为您投票)。
当亚马逊预测订单是否为欺诈性商品时,每个订单都对应一个观察值。每个观察值都有几个属性:订单的总价值,是否将订单运送到该客户以前使用过的地址等。观察的类别为0或1,其中0表示该订单不是欺诈性的,而1表示该订单是欺诈性的。当客户下新订单时,我们不会观察它是否是欺诈性的,但是会观察它的属性,并且我们将尝试使用这些属性来预测其类别。
分类需要数据。它涉及寻找模式,而要找到模式,则需要数据。那就是数据科学的用武之地。特别是,我们将假设我们可以访问训练数据:一堆观测值,在其中我们知道每个观测值的类别。这些预先分类的观察值的集合也称为训练集。分类算法将要分析训练集,然后提出一个分类器:一种用于预测未来观测值类别的算法。
分类器不一定是完美的才有用。即使它们的准确度小于100%,它们也可能有用。例如,如果在线约会网站偶尔提出错误的建议,那就可以了;他们的客户已经期望与很多人见面,然后他们才能找到与他们交手的人。当然,您不希望分类器犯太多错误,但不必每次都获得正确的答案。
更新预测
我们知道如何使用训练数据将点分为两类之一。我们的分类只是根据对我们的新点最接近的训练点中最常见的类进行的类预测。
假设我们最终找到了新观点的真实类别。然后,我们将知道我们是否正确分类。另外,我们将有一个新的点可以添加到我们的训练集中,因为我们知道它的类别。这将更新我们的训练集。因此,自然地,我们将要基于新的训练集更新分类器。
本章着眼于一些简单的场景,在这些场景中,新数据引导我们更新了预测。虽然本章中的示例在计算方面很简单,但是可以将更新方法推广到复杂的环境中,并且是用于机器学习的最强大的工具之一。