15 个 Python 中的统计假设检验(备忘单)
原文:
machinelearningmastery.com/statistical-hypothesis-tests-in-python-cheat-sheet/
在
应用机器学习中需要的 15 个统计假设检验的快速参考指南,以及 Python 中的示例代码。
尽管您可以使用数百种统计假设检验,但您可能只需要在机器学习项目中使用一小部分。
在这篇文章中,您将发现一个备忘单,用于机器学习项目的最流行的统计假设检验,其中包含使用 Python API 的示例。
每个统计测试都以一致的方式呈现,包括:
- 测试的名称。
- 测试的内容是什么。
- 测试的关键假设。
- 如何解释测试结果。
- 用于使用测试的 Python API。
注意,当涉及诸如预期的数据分布或样本大小之类的假设时,给定测试的结果可能会优雅地降级,而不是在违反假设时立即变得不可用。
通常,数据样本需要代表域并且足够大以将它们的分布暴露给分析。
在某些情况下,可以校正数据以满足假设,例如通过去除异常值来将近似正态分布校正为正常,或者在样本具有不同方差时使用统计检验中的自由度校正来命名为二例子。
最后,对于给定的关注点可能存在多个测试,例如,常态。我们无法通过统计量获得清晰的问题答案;相反,我们得到概率答案。因此,我们可以通过不同方式考虑问题来得出同一问题的不同答案。因此,对于我们可能对数据提出的一些问题,需要进行多种不同的测试。
让我们开始吧。
- 更新 Nov / 2018 :更好地概述了所涵盖的测试。
Python 备忘单中的统计假设检验
davemichuda 的照片,保留一些权利。
教程概述
本教程分为四个部分;他们是:
- 正态性测试
- Shapiro-Wilk 测试
- D’Agostino 的 K ^ 2 测试
- 安德森 - 达林测试
- 相关性测试
- 皮尔逊的相关系数
- 斯皮尔曼的秩相关
- 肯德尔的秩相关
- 卡方测试
- 参数统计假设检验
- 学生的 t 检验
- 配对学生的 t 检验
- 方差检验分析(ANOVA)
- 重复测量方差分析测试
- 非参数统计假设检验
- Mann-Whitney U 测试
- 威尔科克森签名等级测试
- Kruskal-Wallis H 测试
- 弗里德曼测试
1.正态性测试
本节列出了可用于检查数据是否具有高斯分布的统计测试。
Shapiro-Wilk 测试
测试数据样本是否具有高斯分布。
假设
- 每个样本中的观察是独立的并且相同地分布(iid)。
解释
- H0:样本具有高斯分布。
- H1:样本没有高斯分布。
Python 代码
from scipy.stats import shapiro
data1 = ....
stat, p = shapiro(data)
更多信息
D’Agostino 的 K ^ 2 测试
Tests whether a data sample has a Gaussian distribution.
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
Interpretation
- H0:样本具有高斯分布。
- H1:样本没有高斯分布。
Python Code
from scipy.stats import normaltest
data1 = ....
stat, p = normaltest(data)
More Information
安德森 - 达林测试
Tests whether a data sample has a Gaussian distribution.
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
Interpretation
- H0:样本具有高斯分布。
- H1:样本没有高斯分布。
Python Code
from scipy.stats import anderson
data1 = ....
result = anderson(data)
More Information
2.相关性测试
本节列出了可用于检查两个样本是否相关的统计检验。
皮尔逊的相关系数
测试两个样本是否具有线性关系。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 每个样本中的观察结果通常是分布的。
- 每个样本中的观察结果具有相同的方差。
Interpretation
- H0:两个样本是独立的。
- H1:样本之间存在依赖关系。
Python Code
from scipy.stats import pearsonr
data1, data2 = ...
corr, p = pearsonr(data1, data2)
More Information
斯皮尔曼的秩相关
测试两个样本是否具有单调关系。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
Interpretation
- H0:两个样本是独立的。
- H1:样本之间存在依赖关系。
Python Code
from scipy.stats import spearmanr
data1, data2 = ...
corr, p = spearmanr(data1, data2)
More Information
肯德尔的秩相关
Tests whether two samples have a monotonic relationship.
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
Interpretation
- H0:两个样本是独立的。
- H1:样本之间存在依赖关系。
Python Code
from scipy.stats import kendalltau
data1, data2 = ...
corr, p = kendalltau(data1, data2)
More Information
卡方测试
测试两个分类变量是相关的还是独立的。
Assumptions
- 用于计算列联表的观察是独立的。
- 列联表的每个单元格中有 25 个或更多个例子。
Interpretation
- H0:两个样本是独立的。
- H1:样本之间存在依赖关系。
Python Code
from scipy.stats import chi2_contingency
table = ...
stat, p, dof, expected = chi2_contingency(table)
More Information
- scipy.stats.chi2_contingency
- [维基百科上的卡方测试](https://en.wikipedia.org/wiki/卡方 _test)
3.参数统计假设检验
本节列出了可用于比较数据样本的统计测试。
学生的 t 检验
测试两个独立样本的均值是否显着不同。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 每个样本中的观察结果通常是分布的。
- 每个样本中的观察结果具有相同的方差。
Interpretation
- H0:样本的平均值相等。
- H1:样本的均值不相等。
Python Code
from scipy.stats import ttest_ind
data1, data2 = ...
stat, p = ttest_ind(data1, data2)
More Information
配对学生的 t 检验
测试两个配对样本的均值是否显着不同。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 每个样本中的观察结果通常是分布的。
- 每个样本中的观察结果具有相同的方差。
- 每个样本的观察结果是成对的。
Interpretation
- H0:样本的平均值相等。
- H1:样本的均值不相等。
Python Code
from scipy.stats import ttest_rel
data1, data2 = ...
stat, p = ttest_rel(data1, data2)
More Information
方差检验分析(ANOVA)
测试两个或多个独立样本的均值是否显着不同。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 每个样本中的观察结果通常是分布的。
- 每个样本中的观察结果具有相同的方差。
Interpretation
- H0:样本的平均值相等。
- H1:样品的一种或多种方法是不相等的。
Python Code
from scipy.stats import f_oneway
data1, data2, ... = ...
stat, p = f_oneway(data1, data2, ...)
More Information
重复测量方差分析测试
测试两个或更多配对样本的均值是否显着不同。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 每个样本中的观察结果通常是分布的。
- 每个样本中的观察结果具有相同的方差。
- 每个样本的观察结果是成对的。
Interpretation
- H0:样本的平均值相等。
- H1:样品的一种或多种方法是不相等的。
Python Code
目前在 Python 中不支持。
More Information
- 维基百科的方差分析
4.非参数统计假设检验
Mann-Whitney U 测试
测试两个独立样本的分布是否相等。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
Interpretation
- H0:两个样本的分布相等。
- H1:两个样本的分布不相等。
Python Code
from scipy.stats import mannwhitneyu
data1, data2 = ...
stat, p = mannwhitneyu(data1, data2)
More Information
威尔科克森签名等级测试
测试两个配对样本的分布是否相等。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
- 每个样本的观察结果是成对的。
Interpretation
- H0:两个样本的分布相等。
- H1:两个样本的分布不相等。
Python Code
from scipy.stats import wilcoxon
data1, data2 = ...
stat, p = wilcoxon(data1, data2)
More Information
Kruskal-Wallis H 测试
测试两个或多个独立样本的分布是否相等。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
Interpretation
- H0:所有样本的分布相等。
- H1:一个或多个样本的分布不相等。
Python Code
from scipy.stats import kruskal
data1, data2, ... = ...
stat, p = kruskal(data1, data2, ...)
More Information
弗里德曼测试
测试两个或更多配对样本的分布是否相等。
Assumptions
- 每个样本中的观察是独立的并且相同地分布(iid)。
- 可以对每个样本中的观察进行排序。
- 每个样本的观察结果是成对的。
Interpretation
- H0:所有样本的分布相等。
- H1:一个或多个样本的分布不相等。
Python Code
from scipy.stats import friedmanchisquare
data1, data2, ... = ...
stat, p = friedmanchisquare(data1, data2, ...)
More Information
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
摘要
在本教程中,您发现了可能需要在机器学习项目中使用的关键统计假设检验。
具体来说,你学到了:
- 在不同情况下使用的测试类型,例如正态性检查,变量之间的关系以及样本之间的差异。
- 每个测试的关键假设以及如何解释测试结果。
- 如何使用 Python API 实现测试。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
我是否错过了其中一项列出的测试的重要统计测试或关键假设?
请在下面的评论中告诉我。
统计假设检验的温和介绍
原文:
machinelearningmastery.com/statistical-hypothesis-tests/
必须解释数据以增加含义。
我们可以通过假设特定结构来解释数据,并使用统计方法来确认或拒绝假设。该假设称为假设,用于此目的的统计检验称为统计假设检验。
每当我们想要对数据分布做出声明,或者一组结果是否与应用机器学习中的另一组结果不同时,我们必须依赖统计假设检验。
在本教程中,您将发现统计假设检验以及如何解释和仔细陈述统计检验的结果。
完成本教程后,您将了解:
- 统计假设检验对于量化关于数据样本的问题的答案很重要。
- 统计假设检验的解释需要正确理解 p 值和临界值。
- 无论显着性水平如何,假设检验的发现仍可能包含错误。
让我们开始吧。
- 更新于 2018 年 5 月:添加了关于“拒绝”与“拒绝拒绝”的说明,改进了此问题的语言。
- 更新 Jun / 2018 :修正了 I 型和 II 型错误解释中的拼写错误。
统计假设检验的温和介绍
Kevin Verbeem 的照片,保留一些权利。
教程概述
本教程分为 3 个部分;他们是:
- 统计假设检验
- 统计测试解释
- 统计检验中的错误
统计假设检验
仅数据并不有趣。这是对我们真正感兴趣的数据的解释。
在统计学中,当我们希望开始询问有关数据的问题并解释结果时,我们使用统计方法来提供答案的置信度或可能性。一般来说,这类方法称为统计假设检验,或显着性检验。
术语“_ 假设 _”可能会让你思考科学,我们在那里研究一个假设。这是正确的轨道。
在统计学中,假设检验在给定假设下计算一些数量。测试结果允许我们解释假设是否成立或假设是否被违反。
我们将在机器学习中大量使用的两个具体例子是:
- 假设数据具有正态分布的测试。
- 假设两个样本来自相同的基础人口分布的测试。
统计检验的假设称为零假设,或假设 0(简称 H0)。它通常被称为默认假设,或者假设没有任何变化。
违反测试假设通常被称为第一个假设,假设 1 或简称 H1。 H1 实际上是“_ 其他一些假设 _”的简称,因为我们所知道的是证据表明 H0 可以被拒绝。
- 假设 0(H0):测试的假设成立并且未能在某种重要性水平上被拒绝。
- 假设 1(H1):测试的假设不成立并且在某种程度上被拒绝。
在我们拒绝或不能拒绝原假设之前,我们必须解释测试的结果。
统计测试解释
统计假设检验的结果必须解释为我们开始提出索赔。
对于初学者和有经验的从业者来说,这一点可能会引起很多混乱。
统计假设检验可能会产生两种常见形式,必须以不同方式进行解释。它们是 p 值和临界值。
解释 p 值
我们通过解释 p 值来描述一个具有统计显着性的发现。
例如,我们可以对数据样本执行正态性检验,并发现数据样本不太可能偏离高斯分布,不能拒绝原假设。
统计假设检验可以返回称为 p 的值或 p 值。这是我们可以用来解释或量化测试结果的数量,并且拒绝或不能拒绝原假设。这是通过将 p 值与预先选择的称为显着性水平的阈值进行比较来完成的。
显着性水平通常由希腊小写字母 alpha 引用。
用于 alpha 的常用值是 5%或 0.05。较小的α值表明对零假设的更稳健的解释,例如 1%或 0.1%。
将 p 值与预先选择的α值进行比较。当 p 值小于α时,结果具有统计学意义。这表示检测到更改:可以拒绝默认假设。
- 如果 p 值> alpha :无法拒绝原假设(即不具有重要结果)。
- 如果 p 值< =α:拒绝原假设(即显着结果)。
例如,如果我们正在测试数据样本是否正常并且我们计算了 p 值为.07,我们可以说:
测试发现数据样本是正常的,未能以 5%的显着性水平拒绝零假设。
可以通过从 1 中减去显着性水平来反映显着性水平,以给出观察到的样本数据的假设的置信水平。
confidence level = 1 - significance level
因此,也可以进行如下陈述:
测试发现数据正常,未能在 95%置信水平拒绝零假设。
“拒绝”与“拒绝拒绝”
p 值是概率性的。
这意味着当我们解释统计测试的结果时,我们不知道什么是真或假,只有可能。
拒绝零假设意味着有足够的统计证据表明零假设看起来不太可能。否则,这意味着没有足够的统计证据来拒绝零假设。
我们可以根据拒绝和接受零假设的二分法来考虑统计检验。危险在于,如果我们说“_ 接受 ”零假设,那么该语言就表明零假设是正确的。相反,更安全地说我们“ 未能拒绝 _”零假设,因为没有足够的统计证据来拒绝它。
当第一次阅读“_ 拒绝 ”vs“ 未能拒绝 ”时,初学者会感到困惑。您可以将其视为“ 拒绝 ”与“ 接受 ”在您的脑海中,只要您提醒自己结果是概率性的,即使是“ 接受 _“零假设仍然存在错误的概率很小。
常见的 p 值误解
本节重点介绍统计检验结果中 p 值的一些常见错误解释。
真或假空假设
对 p 值的解释并不意味着零假设是真或假。
它确实意味着我们选择在基于经验证据和所选统计检验的特定统计显着性水平上拒绝或不能拒绝零假设。
您仅限于提出概率声明,而不是关于结果的清晰二元或真/假声明。
p 值为概率
一个常见的误解是 p 值是给定数据的零假设为真或假的概率。
在概率上,这将写成如下:
Pr(hypothesis | data)
这是不正确的。
相反,p 值可以被认为是给定统计测试中嵌入的预先指定的假设的数据的概率。
再次,使用概率表示法,这将写为:
Pr(data | hypothesis)
它允许我们推断数据是否符合假设。不是相反。
p 值是衡量零假设为真时数据样本观察的可能性的度量。
后期调整
这并不意味着您可以重新对域进行采样或调整数据样本并重新运行统计测试,直到获得所需结果。
这并不意味着您可以在运行测试后选择 p 值。
这被称为 p-hacking 或爬山,意味着你呈现的结果将是脆弱的而不具代表性的。在科学方面,这至多是不道德的,最糟糕的是欺诈。
解释临界值
某些测试不返回 p 值。
相反,他们可能会返回临界值列表及其相关显着性水平,以及测试统计量。
这些通常是非参数或无分布的统计假设检验。
返回 p 值或临界值列表的选择实际上是一种实现选择。
结果以类似的方式解释。不是将单个 p 值与预先指定的显着性水平进行比较,而是将检验统计量与选定显着性水平的临界值进行比较。
- 如果检验统计量<临界值:无法拒绝原假设。
- 如果检验统计量> =临界值:拒绝原假设。
同样,结果的含义是类似的,因为所选择的显着性水平是关于拒绝的概率决定或者在给定数据的情况下不能拒绝测试的基本假设。
结果以与 p 值相同的方式呈现,作为显着性水平或置信水平。例如,如果计算正态性检验并将检验统计量与 5%显着性水平的临界值进行比较,则结果可表示为:
The test found that the data sample was normal, failing to reject the null hypothesis at a 5% significance level.
要么:
The test found that the data was normal, failing to reject the null hypothesis at a 95% confidence level.
统计检验中的错误
统计假设检验的解释是概率性的。
这意味着测试的证据可能表明结果并且是错误的。
例如,如果α为 5%,则表明(最多)20 次中的 1 次,由于数据样本中的统计噪声,零假设将被错误地拒绝或未能被拒绝。
给定一个小的 p 值(拒绝零假设)或者意味着零假设是假的(我们做对了)或者它是真的并且已经观察到一些罕见且不太可能的事件(我们犯了一个错误)。如果发生这种类型的错误,则称为误报。我们错误地认为拒绝零假设。
或者,给定一个大的 p 值(未能拒绝零假设),它可能意味着零假设为真(我们做对了)或者零假设是假的并且发生了一些不太可能的事件(我们犯了一个错误) 。如果发生这种类型的错误,则称为假阴性。我们错误地认为零假设或统计检验的假设。
这两种错误中的每一种都有一个特定的名称。
- 类型 I 错误:错误拒绝真零假设或假阳性。
- 类型 II 错误:拒绝假零假设或假阴性的错误失败。
所有统计假设检验都有可能产生这些类型的错误。虚假的发现或错误的妄想是可能的;他们很可能。
理想情况下,我们希望选择一个显着性水平,以最大限度地减少这些错误之一的可能性。例如。非常小的显着性水平。虽然 0.05 和 0.01 等显着性水平在许多科学领域都很常见,但更为科学的,如物理学,更具攻击性。
通常使用 3 * 10 ^ -7 或 0.0000003 的显着性水平,通常称为 5-sigma。这意味着该发现是由于偶然发生实验的 350 万次独立重复中的概率为 1。要使用这样的阈值,可能需要大量的数据样本。
然而,这些类型的错误总是存在的,在呈现和解释统计测试的结果时必须牢记这些错误。这也是为什么独立验证结果很重要的原因。
扩展
本节列出了一些扩展您可能希望探索的教程的想法。
- 查找不使用 p 值显示结果的研究论文示例。
- 找一个研究论文的例子,该论文提出具有统计显着性的结果,但是对 p 值进行了一种常见的误解。
- 找一个研究论文的例子,该论文提出具有统计显着性的结果,并正确地解释和呈现 p 值和发现。
如果你探索任何这些扩展,我很想知道。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
用品
摘要
在本教程中,您发现了统计假设检验以及如何解释和仔细陈述统计检验的结果。
具体来说,你学到了:
- 统计假设检验对于量化关于数据样本的问题的答案很重要。
- 统计假设检验的解释需要正确理解 p 值。
- 无论显着性水平如何,假设检验的发现仍可能包含错误。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
10 个在机器学习项目中使用统计方法的示例
原文:
machinelearningmastery.com/statistical-methods-in-an-applied-machine-learning-project/
统计和机器学习是两个非常密切相关的领域。
事实上,两者之间的界限有时可能非常模糊。然而,有些方法明显属于统计领域,这些方法不仅有用,而且在开展机器学习项目时非常宝贵。
可以公平地说,需要统计方法来有效地完成机器学习预测性建模项目。
在这篇文章中,您将发现在预测性建模问题的关键步骤中有用且必需的统计方法的具体示例。
完成这篇文章后,你会知道:
- 探索性数据分析,数据汇总和数据可视化可用于帮助构建预测性建模问题并更好地理解数据。
- 这些统计方法可用于清理和准备准备建模的数据。
- 统计假设检验和估计统计可以帮助进行模型选择,并提供最终模型的技能和预测。
让我们开始吧。
10 应用机器学习项目中使用统计方法的示例
chenutis 的照片,保留一些权利。
概观
在这篇文章中,我们将看一下在应用机器学习项目中使用统计方法的 10 个例子。
这将证明统计学的工作知识对于成功完成预测性建模问题至关重要。
- 问题框架
- 数据理解
- 数据清理
- 数据选择
- 数据准备
- 模型评估
- 型号配置
- 型号选择
- 模特演示
- 模型预测
1.问题框架
也许预测模型问题中最大的杠杆点是问题的框架。
这是问题类型的选择,例如回归或分类,也许还有问题的输入和输出的结构和类型。
问题的框架并不总是显而易见的。对于域的新手,可能需要对域中的观察进行重要的探索。
对于可能无法从传统角度看待问题的领域专家,他们也可以从多角度考虑数据中受益。
在框架问题期间有助于探索数据的统计方法包括:
- 探索性数据分析。摘要和可视化,以便探索数据的临时视图。
- 数据挖掘。自动发现数据中的结构化关系和模式。
2.数据理解
数据理解意味着密切掌握变量的分布和变量之间的关系。
其中一些知识可能来自领域专业知识,或需要领域专业知识才能解释。尽管如此,研究领域的专家和新手都将从实际处理领域的实际观察中受益。
统计方法的两个大分支用于帮助理解数据;他们是:
- 摘要统计。用于使用统计量总结变量之间的分布和关系的方法。
- 数据可视化。用于使用可视化(如图表,图表和图形)汇总变量之间的分布和关系的方法。
3.数据清理
来自域的观察通常不是原始的。
虽然数据是数字的,但它可能会受到可能损害数据保真度的过程,以及使用数据的任何下游过程或模型。
一些例子包括:
- 数据损坏。
- 数据错误。
- 数据丢失。
识别和修复数据问题的过程称为数据清理
统计方法用于数据清理;例如:
- 异常值检测。用于识别远离分布中的预期值的观察的方法。
- 估算。修复或填写观察中腐败或缺失值的方法。
4.数据选择
在建模时,并非所有观察结果或所有变量都可能相关。
将数据范围缩小到对预测最有用的元素的过程称为数据选择。
用于数据选择的两种统计方法包括:
- 数据样本。从较大数据集系统地创建较小代表性样本的方法。
- 特征选择。自动识别与结果变量最相关的变量的方法。
5.数据准备
数据通常不能直接用于建模。
为了改变数据的形状或结构,使其更适合于选择的问题框架或学习算法,通常需要进行一些转换。
使用统计方法进行数据准备。一些常见的例子包括:
- 缩放。标准化和规范化等方法。
- 编码。整数编码和单热编码等方法。
- 转换。诸如 Box-Cox 方法之类的功率变换等方法。
6.模型评估
预测性建模问题的关键部分是评估学习方法。
这通常需要在对模型训练期间未见的数据做出预测时估计模型的技能。
通常,这种训练和评估预测模型的过程的规划称为实验设计。这是统计方法的整个子领域。
- 实验设计。设计系统实验以比较自变量对结果的影响的方法,例如机器学习算法对预测准确率的选择。
作为实现实验设计的一部分,使用方法对数据集进行重采样,以便经济地使用可用数据,以便估计模型的技能。这两个代表了统计方法的一个子领域。
- 重采样方法。用于系统地将数据集拆分成子集以用于训练和评估预测模型的方法。
7.模型配置
给定的机器学习算法通常具有一套超参数,其允许针对特定问题定制学习方法。
超参数的配置本质上通常是经验性的,而不是分析性的,需要大量实验来评估不同超参数值对模型技能的影响。
不同超参数配置之间的结果的解释和比较是使用两个统计子域之一进行的,即:
- 统计假设检验。在假设或期望结果的情况下量化观察结果的可能性的方法(使用临界值和 p 值表示)。
- 估算统计。使用置信区间量化结果不确定性的方法。
8.模型选择
许多机器学习算法中的一个可能适合于给定的预测性建模问题。
选择一种方法作为解决方案的过程称为模型选择。
这可能涉及项目中的利益相关者的一套标准,以及对针对该问题评估的方法的估计技能的仔细解释。
与模型配置一样,可以使用两类统计方法来解释不同模型的估计技能,以用于模型选择。他们是:
- 统计假设检验。在假设或期望结果的情况下量化观察结果的可能性的方法(使用临界值和 p 值表示)。
估算统计。使用置信区间量化结果不确定性的方法。
9.模型演示
一旦最终模型经过训练,就可以在使用或部署之前将其呈现给利益相关者,以对实际数据进行实际预测。
呈现最终模型的一部分涉及呈现模型的估计技能。
来自估计统计领域的方法可用于通过使用容差区间和置信区间来量化机器学习模型的估计技能的不确定性。
- 估算统计。通过置信区间量化模型技能不确定性的方法。
10.模型预测
最后,现在是时候开始使用最终模型来预测我们不知道真实结果的新数据。
作为预测的一部分,量化预测的置信度非常重要。
就像模型呈现过程一样,我们可以使用估计统计领域的方法来量化这种不确定性,例如置信区间和预测区间。
- 估算统计。通过预测间隔量化预测的不确定性的方法。
摘要
在本教程中,您发现了统计方法在整个预测性建模项目过程中的重要性。
具体来说,你学到了:
- 探索性数据分析,数据汇总和数据可视化可用于帮助构建预测性建模问题并更好地理解数据。
- 这些统计方法可用于清理和准备准备建模的数据。
- 统计假设检验和估计统计可以帮助进行模型选择,并提供最终模型的技能和预测。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
Python 中统计功效和功效分析的简要介绍
原文:
machinelearningmastery.com/statistical-power-and-power-analysis-in-python/
如果存在检测到的真实效果,则假设检验的统计功效是检测效果的概率。
可以计算并报告完成实验的功效,以评论从研究结果中得出的结论中可能存在的置信度。它还可以用作估计观察数量或样本量的工具,以便检测实验中的效果。
在本教程中,您将发现假设检验的统计功效的重要性,现在可以计算功效分析和功率曲线,作为实验设计的一部分。
完成本教程后,您将了解:
- 统计功效是在发现效果时发现效果的假设检验的概率。
- 在给定期望的显着性水平,效应大小和统计功效的情况下,功率分析可用于估计实验所需的最小样本大小。
- 如何计算和绘制 Python 中 Student t 检验的功效分析,以便有效地设计实验。
让我们开始吧。
Python 中统计功效和功率分析的简要介绍
KamilPorembiński的照片,保留一些权利。
教程概述
本教程分为四个部分;他们是:
- 统计假设检验
- 什么是统计权力?
- 功率分析
- 学生的测试功率分析
统计假设检验
统计假设检验对结果做出假设,称为零假设。
例如,Pearson 相关性检验的零假设是两个变量之间没有关系。T 检验的零假设是两个群体的均值之间没有差异。
测试通常使用 p 值来解释,p 值是观察结果的概率,假设零假设为真,而不是相反,正如误解的情况一样。
- p 值(p):获得与数据中观察到的结果相等或更高的结果的概率。
在解释显着性检验的 p 值时,必须指定显着性水平,通常称为希腊小写字母 alpha(a)。显着性水平的共同值是 5%写为 0.05。
p 值对所选显着性水平的背景感兴趣。如果 p 值小于显着性水平,则显着性检验的结果被称为“_ 统计学上显着 _”。这意味着拒绝零假设(没有结果)。
- p <= alpha :拒绝 H0,分布不同。
- p&gt; alpha :无法拒绝 H0,相同的分布。
哪里:
- 显着性水平(α):用于在解释 p 值时指定统计学上显着的发现的边界。
我们可以看到 p 值只是一个概率,实际上结果可能不同。测试可能是错误的。给定 p 值,我们可以在解释中出错。
有两种类型的错误;他们是:
- I 型错误。当实际上没有显着影响(假阳性)时拒绝原假设。 p 值乐观地小。
- II 型错误。当存在显着影响时(假阴性),不拒绝原假设。 p 值悲观地大。
在这种情况下,我们可以将显着性水平视为拒绝零假设的概率,如果它是真的。这是发生 I 型错误或误报的可能性。
什么是统计权力?
统计功效或假设检验的功效是检验正确拒绝零假设的概率。
也就是说,真阳性结果的概率。只有当零假设被拒绝时才有用。
统计功效是指测试正确拒绝假零假设的概率。仅当 null 为假时,统计功率才具有相关性。
- 第 60 页,影响大小的基本指南:统计能力,Meta 分析和研究结果的解释,2010。
给定实验的统计功效越高,产生 II 型(假阴性)误差的概率越低。也就是说,当有效果时检测效果的概率越高。实际上,功率恰好是 II 型误差概率的倒数。
Power = 1 - Type II Error
Pr(True Positive) = 1 - Pr(False Negative)
更直观地,当备选假设为真时,统计能力可以被认为是接受备选假设的概率。
在解释统计功效时,我们寻求具有高统计功效的经验设置。
- 低统计功率:犯下 II 型错误的风险很大,例如:假阴性。
- 高统计功率:犯下 II 型错误的风险很小。
统计功率太低的实验结果将导致关于结果含义的无效结论。因此,必须寻求最低水平的统计功效。
设计具有 80%或更高的统计功效的实验是常见的,例如, 0.80。这意味着遇到 II 型区域的概率为 20%。这与显着性水平的标准值遇到类型 I 错误的 5%可能性不同。
功率分析
统计力是拼图中的一个,有四个相关部分;他们是:
- 效果大小。人口中存在的结果的量化量。效应大小是使用特定的统计量度计算的,例如 Pearson 的变量之间关系的相关系数或 Cohen 的 d 之间的差异。
- 样本量。样本中的观察数量。
- 意义。统计检验中使用的显着性水平,例如α。通常设为 5%或 0.05。
- 统计权。如果是真的,接受替代假设的概率。
所有四个变量都是相关的。例如,较大的样本大小可以使效果更容易检测,并且通过降低显着性水平可以在测试中增加统计功效。
功率分析涉及在给定三个其他参数的值的情况下估计这四个参数中的一个。这是我们希望使用统计假设检验解释的实验设计和分析中的强大工具。
例如,可以在给定效应大小,样本大小和显着性水平的情况下估计统计功效。或者,可以给出不同的期望显着性水平来估计样本大小。
功效分析可以回答诸如“我的研究有多大的统计效力?”和“我需要多大的样本量?”等问题。
- 第 56 页,影响大小的基本指南:统计功效,Meta 分析和研究结果的解释,2010。
也许功率分析最常见的用途是估计实验所需的最小样本量。
功率分析通常在进行研究之前进行。预期或先验功率分析可用于估计四个功率参数中的任何一个,但最常用于估计所需的样本大小。
- 第 57 页,影响大小的基本指南:统计能力,Meta 分析和研究结果的解释,2010。
作为从业者,我们可以从一些参数的合理默认值开始,例如 0.05 的显着性水平和 0.80 的功率水平。然后我们可以估计所需的最小效应大小,特定于正在进行的实验。然后可以使用功率分析来估计所需的最小样本量。
此外,可以执行多个功率分析以提供一个参数相对于另一个参数的曲线,例如在给定样本大小变化的情况下实验中效果大小的变化。可以根据三个参数创建更精细的图表。这是实验设计的有用工具。
学生的测试功率分析
我们可以通过一个有效的例子,将统计功效和功率分析的思想具体化。
在本节中,我们将研究 Student t 检验,这是一个统计假设检验,用于比较两个高斯变量样本的均值。该测试的假设或无假设是样本群具有相同的平均值,例如样本之间没有差异,或者样本来自相同的基础人群。
该测试将计算 p 值,该 p 值可以解释为样本是否相同(未能拒绝原假设),或者样本之间存在统计上显着的差异(拒绝原假设)。解释 p 值的共同显着性水平是 5%或 0.05。
- 显着性水平(α):5%或 0.05。
比较两组的效果的大小可以用效应大小测量来量化。比较两组平均值差异的常用方法是科恩测量。它计算一个标准分数,用于描述平均值不同的标准差数量的差异。 Cohen 的 d 的大效应大小为 0.80 或更高,这是使用该度量时通常接受的。
- 效果大小:科恩的 d 至少为 0.80。
我们可以使用默认值并假设最小统计功效为 80%或 0.8。
- 统计功效:80%或 0.80。
对于具有这些默认值的给定实验,我们可能对估计合适的样本大小感兴趣。也就是说,每个样本需要多少观察才能至少检测到 0.80 的效果,如果是真的则有 80%的几率检测到效果(类型 II 误差的 20%)和 5%的检测机会如果没有这种效果会产生影响(类型 I 错误)。
我们可以使用功率分析来解决这个问题。
statsmodels 库提供 TTestIndPower 类,用于计算具有独立样本的 Student t 检验的功效分析。值得注意的是 TTestPower 类可以对配对的 Student t 检验执行相同的分析。
函数 solve_power()可用于计算功率分析中的四个参数之一。在我们的例子中,我们有兴趣计算样本量。我们可以通过提供我们知道的三条信息(alpha
,_ 效果 _ 和power
)并设置我们想要计算的参数大小来使用该功能(nobs1
)对“_ 无 _”的答案。这告诉函数要计算什么。
关于样本大小的注释:该函数有一个称为比率的参数,即一个样本中的样本数与另一个样本中的样本数之比。如果预期两个样本具有相同的观察数量,则该比率为 1.0。例如,如果预计第二个样本的观察量是观察量的一半,那么该比率将为 0.5。
必须创建 TTestIndPower 实例,然后我们可以使用我们的参数调用 solve_power() 来估计实验的样本大小。
# perform power analysis
analysis = TTestIndPower()
result = analysis.solve_power(effect, power=power, nobs1=None, ratio=1.0, alpha=alpha)
下面列出了完整的示例。
# estimate sample size via power analysis
from statsmodels.stats.power import TTestIndPower
# parameters for power analysis
effect = 0.8
alpha = 0.05
power = 0.8
# perform power analysis
analysis = TTestIndPower()
result = analysis.solve_power(effect, power=power, nobs1=None, ratio=1.0, alpha=alpha)
print('Sample Size: %.3f' % result)
运行该示例计算并打印实验的估计样本数为 25.这将是查看所需大小效果所需的建议最小样本数。
Sample Size: 25.525
我们可以更进一步,计算功率曲线。
功效曲线是线图,显示变量的变化(如效应大小和样本大小)如何影响统计检验的功效。
plot_power()函数可用于创建功率曲线。因变量(x 轴)必须在’dep_var
’参数中通过名称指定。然后可以为样本大小(nobs
),效应大小(effect_size
)和显着性(alpha
)参数指定值数组。然后绘制一条或多条曲线,显示对统计功效的影响。
例如,我们可以假设 0.05 的显着性(函数的默认值)并探索样本大小在 5 到 100 之间的变化,具有低,中和高效果大小。
# calculate power curves from multiple power analyses
analysis = TTestIndPower()
analysis.plot_power(dep_var='nobs', nobs=arange(5, 100), effect_size=array([0.2, 0.5, 0.8]))
The complete example is listed below.
# calculate power curves for varying sample and effect size
from numpy import array
from matplotlib import pyplot
from statsmodels.stats.power import TTestIndPower
# parameters for power analysis
effect_sizes = array([0.2, 0.5, 0.8])
sample_sizes = array(range(5, 100))
# calculate power curves from multiple power analyses
analysis = TTestIndPower()
analysis.plot_power(dep_var='nobs', nobs=sample_sizes, effect_size=effect_sizes)
pyplot.show()
运行该示例创建的图表显示了随着样本大小(x 轴)增加,对三种不同效果大小(es
)的统计功效(y 轴)的影响。
我们可以看到,如果我们对一个大的影响感兴趣,那么在统计功效方面的收益递减点发生在大约 40 到 50 个观测值。
T 检验的功率曲线
有用的是,statsmodels 具有类来执行功率分析以及其他统计测试,例如 F 检验,Z 检验和卡方检验。
扩展
本节列出了一些扩展您可能希望探索的教程的想法。
- 绘制不同标准显着性水平的功效曲线与样本量的关系图。
- 查找报告实验统计功效的研究示例。
- 为 statsmodels 提供的其他统计测试准备表现分析示例。
如果你探索任何这些扩展,我很想知道。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
文件
- 使用效果大小 - 或为什么 P 值不够,2012。
图书
- 影响大小的基本指南:统计力量,Meta 分析和研究结果的解释,2010。
- 了解新统计:影响大小,置信区间和元分析,2011。
- 行为科学的统计功效分析,1988。
- 行为科学的应用功效分析,2010。
API
- Statsmodels 功率和样本量计算
- statsmodels.stats.power.TTestPower API
- statsmodels.stats.power.TTestIndPower
- statsmodels.stats.power.TTestIndPower.solve_power()API
statsmodels.stats.power.TTestIndPower.plot_power()API - Statsmodels 统计权力,2013 年。
- statsmodels 中的 Power Plots ,2013。
用品
摘要
在本教程中,您发现了假设检验的统计功效以及如何计算功效分析和功率曲线作为实验设计的一部分。
具体来说,你学到了:
- 统计功效是在发现效果时发现效果的假设检验的概率。
- 在给定期望的显着性水平,效应大小和统计功效的情况下,功率分析可用于估计实验所需的最小样本大小。
- 如何计算和绘制 Python 中 Student t 检验的功效分析,以便有效地设计实验。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
统计采样和重采样的简要介绍
原文:
machinelearningmastery.com/statistical-sampling-and-resampling/
数据是应用机器学习的货币。因此,有效地收集和使用它是很重要的。
数据采样是指用于从域中选择观测值的统计方法,其目的是估计总体参数。而数据重采样指的是经济地使用收集的数据集来改进总体参数的估计并且有助于量化估计的不确定性的方法。
数据采样和数据重采样都是预测性建模问题所需的方法。
在本教程中,您将发现用于收集和充分利用数据的统计采样和统计重采样方法。
完成本教程后,您将了解:
- 采样是一个积极的过程,用于收集观察结果,旨在估算人口变量。
- 重采样是一种经济地使用数据样本来提高准确率并量化群体参数的不确定性的方法。
- 实际上,重采样方法使用嵌套的重采样方法。
让我们开始吧。
统计采样和重采样
的照片由 Ed Dunens 拍摄,保留一些权利。
教程概述
本教程分为两部分;他们是:
- 统计采样
- 统计重采样
统计采样
每行数据代表对世界某事物的观察。
处理数据时,我们通常无法访问所有可能的观察结果。这可能有很多原因;例如:
- 进行更多观察可能很困难或者成本很高。
- 将所有观察结果收集在一起可能具有挑战性。
- 预计将来会有更多的观察结果。
在域中进行的观察表示可以在域中进行的所有可能观察的一些更广泛的理想化和未知群体的样本。这是一个有用的概念化,因为我们可以看到观察与理想化人口之间的分离和关系。
我们还可以看到,即使我们打算在所有可用数据上使用大数据基础设施,数据仍然代表了理想化人口的观测样本。
然而,我们可能希望估计人口的属性。我们通过使用观察样本来做到这一点。
采样包括选择一部分人口进行观察,以便人们可以对整个人口进行估算。
- 第 1 页,采样,第三版,2012 年。
如何取样
统计采样是从人口中选择实例子集的过程,目的是估计人口的属性。
采样是一个积极的过程。目标是估算人口属性并控制采样的发生方式。该控制不能影响产生每个观察的过程,例如进行实验。因此,作为场的采样整齐地位于纯不受控制的观察和对照试验之间。
采样通常与实验设计密切相关的领域区别开来,因为在实验中,人们故意扰乱一部分人口,以便了解该行动的影响。 […]采样通常也与观察性研究区别开来,在这些研究中,人们很少或根本无法控制对人群的观察结果。
- 第 1-2 页,采样,第三版,2012。
与使用更全面或完整的数据集相比,采样有许多好处,包括降低成本和提高速度。
为了执行采样,需要您仔细定义人口以及选择(并可能拒绝)观察结果作为数据样本一部分的方法。这可能很好地通过您希望使用样本估计的总体参数来定义。
在收集数据样本之前要考虑的一些方面包括:
- 样本目标。您希望使用样本估算的人口属性。
- 人口。理论上可以进行观察的范围或领域。
- 选择标准。用于接受或拒绝样本中观察结果的方法。
- 样本量。构成样本的观察数量。
一些明显的问题是如何最好地获取样本并进行观察,并且一旦样本数据掌握,如何最好地使用它们来估计整个人口的特征。获得观察结果涉及样本大小,如何选择样本,使用何种观察方法以及记录哪些测量值等问题。
— Page 1, Sampling, Third Edition, 2012.
统计采样是一个很大的研究领域,但在应用机器学习中,您可能会使用三种类型的采样:简单随机采样,系统采样和分层采样。
- 简单随机采样:从域中以均匀概率抽取样本。
- 系统采样:使用预先指定的模式(例如每隔一段时间)绘制样本。
- 分层采样:在预先指定的类别(即分层)内抽取样本。
虽然这些是您可能遇到的更常见的采样类型,但还有其他技术。
采样错误
采样要求我们从一小组观察中对人口进行统计推断。
我们可以将样本中的属性推广到总体。这种估计和推广过程比使用所有可能的观察要快得多,但会包含错误。在许多情况下,我们可以量化估算的不确定性并添加误差条,例如置信区间。
有很多方法可以将错误引入数据样本。
两种主要类型的错误包括选择偏差和采样误差。
- 选择偏差。当绘制观察的方法以某种方式使样本偏斜时引起。
- 采样错误。由于绘图观察的随机性质导致以某种方式偏斜样本。
可能存在其他类型的错误,例如观察或测量的方式中的系统误差。
在这些情况下以及更多情况下,样本的统计特性可能与理想化人口中的预期不同,这反过来可能影响正在估计的人口的特性。
简单的方法,例如检查原始观察,摘要统计和可视化,可以帮助揭示简单的错误,例如测量损坏和一类观察的过度或不足。
然而,在采样和在采样时得出有关人口的结论时,必须小心谨慎。
统计重采样
一旦我们有了数据样本,它就可以用来估计总体参数。
问题是我们只对人口参数进行了单一估计,对估计的可变性或不确定性知之甚少。
解决此问题的一种方法是从我们的数据样本中多次估算人口参数。这称为重采样。
统计重采样方法是描述如何经济地使用可用数据来估计总体参数的过程。结果可以是更准确的参数估计(例如取估计的平均值)和估计的不确定性的量化(例如添加置信区间)。
重采样方法非常易于使用,几乎不需要数学知识。与专业统计方法相比,它们是易于理解和实现的方法,这些方法可能需要深入的技术技能才能选择和解释。
重采样方法易于学习且易于应用。除了介绍性的高中代数之外,它们不需要数学,并且适用于范围极广的学科领域。
- 第 xiii 页,重采样方法:数据分析实用指南,2005 年。
这些方法的缺点是它们在计算上可能非常昂贵,需要数十,数百甚至数千个重采样,以便开发人口参数的稳健估计。
关键的想法是重采样形成原始数据 - 直接或通过拟合模型 - 来创建复制数据集,从中可以评估感兴趣的分位数的可变性,而无需冗长且容易出错的分析计算。因为这种方法涉及使用许多复制数据集重复原始数据分析过程,所以这些有时被称为计算机密集型方法。
- 第 3 页, 自举法及其应用,1997。
来自原始数据样本的每个新子样本用于估计总体参数。然后可以使用统计工具考虑估计的人口参数样本,以量化预期值和方差,提供估计不确定性的度量。
统计采样方法可用于从原始样本中选择子样本。
关键的区别是过程必须重复多次。这样的问题在于样本之间将存在一些关系,作为将在多个子样本之间共享的观察。这意味着子样本和估计的总体参数不是严格相同且独立分布的。这对于对下游估计的种群参数的样本进行的统计测试具有影响,即可能需要成对的统计测试。
您可能遇到的两种常用的重采样方法是 k-fold 交叉验证和引导程序。
- Bootstrap 。从替换的数据集中抽取样本(允许相同的样本在样本中出现多次),其中未被抽入数据样本的那些实例可用于测试集。
- k 折交叉验证。数据集被划分为 k 个组,其中每个组被赋予被用作保持测试集的机会,其余组作为训练集。
k 折交叉验证方法特别适用于评估预测模型,该预测模型在数据的一个子集上重复训练并在第二个保持的数据子集上进行评估。
通常,用于估计模型表现的重采样技术类似地操作:样本子集用于拟合模型,剩余样本用于估计模型的功效。重复此过程多次,并汇总和汇总结果。技术上的差异通常围绕选择子样本的方法。
- 第 69 页, Applied Predictive Modeling ,2013。
引导方法可以用于相同的目的,但是用于估计总体参数的更通用和更简单的方法。
扩展
本节列出了一些扩展您可能希望探索的教程的想法。
- 列举两个机器学习项目中需要统计采样的例子。
- 列出在机器学习项目中需要统计重采样时的两个示例。
- 查找使用重采样方法的论文,该方法又使用嵌套统计采样方法(提示:k-fold 交叉验证和分层采样)。
如果你探索任何这些扩展,我很想知道。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
图书
- 采样,第三版,2012 年。
- 采样技术,第 3 版,1977 年。
- 重采样方法:数据分析实用指南,2005。
- 引导程序简介,1994。
- 自举法及其应用,1997。
- Applied Predictive Modeling ,2013。
用品
摘要
在本教程中,您发现了用于收集和充分利用数据的统计采样和统计重采样方法。
具体来说,你学到了:
- 采样是收集观察意图估计人口变量的积极过程。
- 重采样是一种经济地使用数据样本来提高准确率并量化群体参数的不确定性的方法。
- 实际上,重采样方法使用嵌套的重采样方法。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
用于比较机器学习算法的统计显着性检验
原文:
machinelearningmastery.com/statistical-significance-tests-for-comparing-machine-learning-algorithms/
比较机器学习方法和选择最终模型是应用机器学习中的常见操作。
模型通常使用重采样方法进行评估,例如 k 折叠交叉验证,从中计算并直接比较平均技能分数。虽然简单,但这种方法可能会产生误导,因为很难知道平均技能得分之间的差异是真实的还是统计侥幸的结果。
设计统计显着性检验以解决该问题,并且假设它们是从相同分布中抽取而量化观察技能分数样本的可能性。如果拒绝这种假设或零假设,则表明技能分数的差异具有统计学意义。
虽然不是万无一失,但统计假设检验可以提高您对解释的信心以及在模型选择过程中对结果的呈现。
在本教程中,您将发现选择统计假设检验来比较机器学习模型的重要性和挑战。
完成本教程后,您将了解:
- 统计假设检验有助于比较机器学习模型和选择最终模型。
- 统计假设检验的幼稚应用可能导致误导性结果。
- 正确使用统计检验具有挑战性,对于使用 McNemar 检验或 5×2 交叉验证与修改后的配对 Student t 检验存在一些共识。
让我们开始吧。
- 更新 Oct / 2018 :添加了使用 McNemar 测试的示例的链接。
用于比较机器学习算法的统计显着性检验
照片由FotografíasdeJavier 拍摄,保留一些权利。
教程概述
本教程分为 5 个部分;他们是:
- 模型选择问题
- 统计假设检验
- 选择假设检验的问题
- 一些调查结果摘要
- 建议
模型选择问题
应用机器学习的一个重要部分是模型选择。
我们可以用最简单的形式来描述:
鉴于对数据集的两种机器学习方法的评估,您选择哪种模型?
您选择具有最佳技能的模型。
也就是说,在对看不见的数据做出预测时估计技能的模型是最佳的。在分类和回归问题的情况下,这可能分别是最大准确度或最小误差。
选择具有最佳技能的模型的挑战在于确定您可以信任每种模型的估计技能的程度。更普遍:
两种机器学习模型之间的技能差异是真实的,还是由于统计机会?
我们可以使用统计假设检验来解决这个问题。
统计假设检验
通常,用于比较样本的统计假设检验量化了在假设样本具有相同分布的情况下观察两个数据样本的可能性。
统计检验的假设称为零假设,我们可以计算统计指标并对其进行解释,以决定是否接受或拒绝原假设。
在基于其估计技能选择模型的情况下,我们有兴趣知道两个模型之间是否存在实际或统计上显着的差异。
- 如果测试结果表明没有足够的证据拒绝零假设,那么任何观察到的模型技能差异都可能是由于统计机会。
- 如果测试结果表明有足够的证据拒绝零假设,则模型技能的任何观察到的差异可能是由于模型的差异。
测试的结果是概率性的,这意味着,可以正确地解释结果,并且结果对于类型 I 或类型 II 错误是错误的。简而言之,假阳性或假阴性发现。
通过统计显着性检验比较机器学习模型会产生一些预期,反过来会影响可以使用的统计检验类型;例如:
- 技能评估。必须选择特定的模型技能度量。这可能是分类准确度(一个比例)或平均绝对误差(汇总统计量),这将限制可以使用的测试类型。
- 重复估计。需要一个技能分数样本来计算统计量。对相同或不同数据重复训练和测试给定模型将影响可以使用的测试类型。
- 估算分布。技能分数估计的样本将具有分布,可能是高斯分布或者可能不是。这将确定是否可以使用参数测试或非参数测试。
- 中心趋势。通常使用诸如平均值或中值的汇总统计来描述和比较模型技能,这取决于技能分数的分布。测试可能会也可能不会直接考虑到这一点。
统计检验的结果通常是检验统计量和 p 值,两者都可以在结果的呈现中被解释和使用,以便量化模型之间差异的置信水平或显着性。这允许更强的声明作为模型选择的一部分而不是使用统计假设检验。
鉴于使用统计假设检验似乎是模型选择的一部分,您如何选择适合您特定用例的测试?
选择假设检验的问题
让我们看一个用于评估和比较均衡二分类问题的分类器的常见示例。
通常的做法是使用分类准确度评估分类方法,使用 10 倍交叉验证评估每个模型,假设 10 个模型技能估计样本的高斯分布,并使用样本的平均值作为总结模特的技巧。
我们可以要求使用此过程评估的每个分类器通过 10 倍交叉验证在完全相同的数据集分割上进行评估。这将给出两个分类器之间匹配的配对测量的样本,因为每个分类器在相同的 10 个测试集上进行评估。
然后我们可以选择并使用配对的T 检验来检查两个模型之间平均准确度的差异是否具有统计学意义,例如拒绝假设两个样本具有相同分布的零假设。
事实上,这是使用这种方法将分类器与可能数百篇已发表论文进行比较的常用方法。
问题是,配对 T 检验的关键假设已被违反。
即,每个样本中的观察结果不是独立的。作为 k 折交叉验证程序的一部分,将在训练数据集(k-1)中使用给定的观察。这意味着估计的技能分数是依赖的,而不是独立的,反过来,测试中的 t 统计量的计算将与误差统计和 p 值的任何解释一起误导。
这种观察需要仔细了解所使用的重采样方法,在这种情况下是 k 次交叉验证,以及所选假设检验的期望,在这种情况下是配对 T 检验。没有这个背景,测试看起来是合适的,结果将被计算和解释,一切都会好看。
不幸的是,在应用机器学习中为模型选择选择适当的统计假设检验比首次出现时更具挑战性。幸运的是,越来越多的研究有助于指出朴素方法的缺陷,并提出修正和替代方法。
一些调查结果摘要
在本节中,我们来看一些关于机器学习中模型选择的适当统计显着性检验选择的研究。
使用 McNemar 的测试或 5×2 交叉验证
也许关于这一主题的开创性工作是 1998 年题为“用于比较监督分类学习算法的近似统计检验”的论文,作者是 Thomas Dietterich。
这是关于该主题的优秀论文和推荐阅读。它首先介绍了一个很好的框架,用于在机器学习项目中考虑可能需要进行统计假设检验的点,讨论与比较分类器机器学习方法相关的常见违反统计检验的期望,以及对方法的经验评估的结束确认调查结果。
本文回顾了五种近似的统计检验,用于确定一种学习算法是否优于另一种学习算法。
本文中统计假设检验的选择和经验评估的重点是 I 型误差或误报的校准。也就是说,选择最小化在没有这种差异时建议显着差异的情况的测试。
本文中有许多重要发现。
第一个发现是,对于通过训练数据集的随机重采样估计的技能结果,使用配对 T 检验绝对不应该进行。
…我们可以自信地得出结论,不应该采用重采样 t 检验。
在随机重采样的情况下和在 k 折交叉验证的情况下(如上所述),违反了配对 t 检验的假设。然而,在 k 折交叉验证的情况下,t 检验将是乐观的,导致 I 类错误更高,但只有适度的 II 类错误。这意味着这种组合可用于避免类型 II 错误比屈服于类型 I 错误更重要的情况。
10 倍交叉验证 t 检验具有高 I 型误差。然而,它也具有高功率,因此,可以推荐在 II 类错误(未能检测到算法之间的真正差异)更重要的情况下。
Dietterich 建议 McNemar 的统计假设检验用于数据量有限且每种算法只能评估一次的情况。
McNemar 的测试类似于卡方测试,在这种情况下用于确定算法的列联表中观察到的比例的差异是否与预期的比例显着不同。对于需要数天或数周训练的大型深度学习神经网络,这是一个有用的发现。
我们的实验引导我们推荐 McNemar 的测试,适用于学习算法只能运行一次的情况。
Dietterich 还推荐了他自己设计的重新取样方法,称为 5×2 交叉验证,涉及 5 次重复的 2 倍交叉验证。
选择两个折叠以确保每个观察仅出现在训练或测试数据集中以用于模型技能的单个估计。在结果上使用配对 T 检验,更新以更好地反映有限的自由度,因为估计的技能分数之间存在依赖关系。
我们的实验引导我们推荐 5 x 2cv t 测试,适用于学习算法足够高效运行十次的情况
5×2 交叉验证的改进
自该论文发表以来,使用 McNemar 测试或 5×2 交叉验证已成为 20 年来大部分时间的主要建议。
尽管如此,已经进行了进一步的改进,以更好地纠正配对 T 检验,以避免重复 k-交叉验证违反独立性假设。
其中两篇重要论文包括:
Claude Nadeau 和 Yoshua Bengio 在 2003 年题为“推断误差”的论文中提出了进一步的修正。这是一张浓密的纸,不适合胆小的人。
该分析允许我们构建两个方差估计,其考虑了由于选择训练集而导致的可变性以及测试示例的选择。其中一个提出的估计看起来类似于 cv 方法(Dietterich,1998),并且专门设计用于高估方差以产生保守推理。
Remco Bouckaert 和 Eibe Frank 在其 2004 年题为“评估比较学习算法的重要性测试的可复制性”的论文中采取了不同的观点,并认为复制结果的能力比 I 型或 II 型错误更重要。
在本文中,我们认为测试的可复制性也很重要。我们说如果测试结果强烈依赖于用于执行它的数据的特定随机分区,那么测试具有低可复制性
令人惊讶的是,他们建议使用 100 次随机重采样或 10×10 倍交叉验证与 Nadeau 和 Bengio 校正配对 Student-t 测试,以实现良好的可复制性。
后一种方法在 Ian Witten 和 Eibe Frank 的书以及他们的开源数据挖掘平台 Weka 中被推荐,将 Nadeau 和 Bengio 校正称为“_ 校正的重采样 t 检验 _”。
已经提出了对标准 t 检验的各种修改来规避这个问题,所有这些修改都是启发式的并且缺乏合理的理论依据。在实践中似乎运行良好的是校正的重采样 t 检验。 […]相同的修改统计量可用于重复交叉验证,这只是重复保持的特殊情况,其中一个交叉验证的各个测试集不重叠。
- 第 159 页,第五章,可信度:评估已经学到的东西,数据挖掘:实用机器学习工具和技术,第三版,2011。
建议
在应用机器学习中选择模型选择的统计显着性检验时,没有银子弹。
让我们看看您可以在机器学习项目中使用的五种方法来比较分类器。
1.独立数据样本
如果您有接近无限的数据,请收集 k 个单独的训练和测试数据集,以计算每种方法的 10 个真正独立的技能分数。
然后,您可以正确应用配对学生的 t 检验。这是最不可能的,因为我们经常处理小数据样本。
…假设存在基本上无限的数据,以便可以使用正确大小的几个独立数据集。实际上,通常只有一个有限大小的数据集。可以做些什么?
- 第 158 页,第五章,可信度:评估已经学到的东西,数据挖掘:实用机器学习工具和技术,第三版,2011。
2.接受 10 倍 CV 的问题
可以使用朴素的 10 倍交叉验证与未修改的配对 T 检验。
它具有相对于其他方法的良好可重复性和适度的 II 型错误,但已知具有高 I 型错误。
实验还建议在解释 10 倍交叉验证 t 检验的结果时要谨慎。该测试具有升高的 I 型错误概率(高达目标水平的两倍),尽管它不像重采样 t 检验的问题那么严重。
- 用于比较监督分类学习算法的近似统计检验,1998。
这是一个选项,但推荐非常弱。
3.使用 McNemar 的测试或 5×2 CV
McNemar 测试单次分类准确率结果的长达 20 年的建议和 5×2 倍交叉验证,并在一般情况下使用修改后的配对 Student t 检验。
此外,Nadeau 和 Bengio 对测试统计的进一步校正可以与 Weka 的开发者推荐的 5×2 倍交叉验证或 10×10 倍交叉验证一起使用。
使用修改的 t 统计量的一个挑战是没有现成的实现(例如在 SciPy 中),需要使用第三方代码以及这带来的风险。您可能必须自己实现。
选择统计方法的可用性和复杂性是一个重要的考虑因素,Gitte Vanwinckelen 和 Hendrik Blockeel 在其 2012 年题为“估计模型准确率与重复交叉验证”的论文中表示:
虽然这些方法经过精心设计,并且可以通过多种方式改进以前的方法,但它们与以前的方法具有相同的风险,即方法越复杂,研究人员使用它的风险就越高。 ,或错误地解释结果。
我有一个在这里使用 McNemar 测试的例子:
4.使用非参数配对测试
我们可以使用非参数测试来做出更少的假设,例如不假设技能分数的分布是高斯分布。
一个例子是 Wilcoxon 符号秩检验,它是配对 T 检验的非参数版本。该测试具有比配对 t 检验更少的统计功效,尽管在违反 t 检验的期望时更多功率,例如独立性。
这种统计假设检验被推荐用于比较 Janez Demsar 在其 2006 年论文“多重数据集中的分类器的统计比较”中的不同数据集的算法。
因此,我们建议使用 Wilcoxon 测试,除非满足 t 检验假设,因为我们有许多数据集,或者因为我们有理由相信跨数据集的表现测量值是正常分布的。
尽管该测试是非参数的,但它仍假设每个样本内的观察是独立的(例如 iid),并且使用 k 折交叉验证将产生依赖样本并违反该假设。
5.使用估算统计
可以计算估计统计量而不是统计假设检验,例如置信区间。考虑到评估模型的重采样方法,这些将遭受类似的问题,其中违反了独立性的假设。
Tom Mitchell 在其 1997 年的书中提出了类似的建议,建议将统计假设检验的结果作为启发式估计,并寻求关于模型技能估计的置信区间:
总而言之,没有一种基于有限数据的比较学习方法的程序满足我们想要的所有约束。明智的是要记住,当可用数据有限时,统计模型很少完全符合测试学习算法的实际约束。然而,它们确实提供了近似置信区间,这对于解释学习方法的实验比较有很大帮助。
- 第 150 页,第五章,评估假设,机器学习,1997。
诸如自举之类的统计方法可用于计算可防御的非参数置信区间,其可用于呈现结果和比较分类器。这是一种简单而有效的方法,您可以随时使用,我建议一般。
实际上,置信区间已经获得了对自助区域中任何主题的最理论研究。
- 第 321 页, Bootstrap 简介,1994。
扩展
本节列出了一些扩展您可能希望探索的教程的想法。
- 查找并列出三篇错误使用未经修改的配对 T 检验的研究论文,以比较和选择机器学习模型。
- 总结在 Thomas Dietterich 1998 年论文中提出的机器学习项目中使用统计假设检验的框架。
- 查找并列出三篇正确使用 McNemar 测试或 5×2 交叉验证进行比较并选择机器学习模型的研究论文。
如果你探索任何这些扩展,我很想知道。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
文件
- 用于比较监督分类学习算法的近似统计检验,1998。
- 推广错误的推断,2003。
- 评估用于比较学习算法的重要性测试的可复制性,2004。
- 关于通过重复交叉验证估算模型准确率,2012。
- 多数据集上分类器的统计比较,2006。
图书
- 第五章,评估假设,机器学习,1997。
- 第五章,可信度:评估已经学到的东西,数据挖掘:实用机器学习工具和技术,第三版,2011。
- 引导程序简介,1994。
用品
讨论
摘要
在本教程中,您发现了选择统计假设检验来比较机器学习模型的重要性和挑战。
具体来说,你学到了:
- 统计假设检验有助于比较机器学习模型和选择最终模型。
- 统计假设检验的幼稚应用可能导致误导性结果。
- 正确使用统计检验具有挑战性,对于使用 McNemar 检验或 5×2 交叉验证与修改后的配对 Student t 检验存在一些共识。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
机器学习中统计容差区间的温和介绍
原文:
machinelearningmastery.com/statistical-tolerance-intervals-in-machine-learning/
对数据设置上限和下限可能很有用。
这些界限可用于帮助识别异常情况并设定期望值。来自群体的观察结果称为公差区间。
容差区间不同于量化单个预测值的不确定性的预测区间。它也不同于量化群体参数(例如均值)的不确定性的置信区间。相反,公差间隔涵盖了人口分布的一部分。
在本教程中,您将发现统计公差间隔以及如何计算高斯数据的公差间隔。
完成本教程后,您将了解:
- 统计公差间隔提供了人口观察的界限。
- 容差间隔要求指定覆盖比例和置信度。
- 可以容易地计算具有高斯分布的数据样本的容差区间。
让我们开始吧。
机器学习中统计公差间隔的温和介绍
Paul Hood 的照片,保留一些权利。
教程概述
本教程分为 4 个部分;他们是:
- 数据的界限
- 什么是统计公差间隔?
- 如何计算公差间隔
- 高斯分布的容差区间
数据的界限
将限制放在数据上很有用。
例如,如果您有来自域的数据样本,则了解正常值的上限和下限可能有助于识别数据中的异常或异常值。
对于正在做出预测的过程或模型,了解合理预测可能需要的预期范围会很有帮助。
了解共同的价值范围有助于设定期望和检测异常。
数据的公共值范围称为容差间隔。
什么是统计公差间隔?
容差区间是对总体中数据比例的估计的约束。
统计公差区间[包含]来自采样总体或过程的单位的指定比例。
- 第 3 页,统计间隔:从业者和研究人员指南,2017 年。
间隔受采样误差和人口分布的方差限制。鉴于大数定律,随着样本量的增加,概率将更好地匹配潜在的人口分布。
以下是规定的公差间隔的示例:
_ 从 x 到 y 的范围覆盖了 95%的数据,置信度为 99%。_
如果数据是高斯数,则可以在平均值的上下文中表示间隔;例如:
x +/- y 覆盖 95%的数据,置信度为 99%。
我们将这些区间称为统计公差区间,以区别于描述可接受性限制的工程中的公差区间,例如设计或材料。通常,为方便起见,我们将其描述为“公差间隔”。
公差间隔以两个量定义:
- 覆盖范围:区间所覆盖的人口比例。
- 置信度:区间覆盖人口比例的概率置信度。
公差间隔由使用两个系数的数据构成,即覆盖范围和公差系数。覆盖范围是该区间应包含的人口(p)的比例。公差系数是间隔达到指定覆盖范围的置信度。覆盖率为 95%且公差系数为 90%的公差区间将包含 95%的人口分布,置信度为 90%。
- 第 175 页,环境工程师统计,第二版,2002 年。
如何计算公差间隔
容差区间的大小与来自总体的数据样本的大小和总体的方差成比例。
根据数据分布计算公差间隔有两种主要方法:参数和非参数方法。
- 参数容差区间:使用人口分布的知识来指定覆盖范围和置信度。通常用于指代高斯分布。
- 非参数容差区间:使用排名统计来估计覆盖率和置信度,由于缺乏有关分布的信息,通常会导致精度降低(间隔更宽)。
对于从高斯分布中抽取的独立观测样本,容差区间相对简单。我们将在下一节中演示此计算。
高斯分布的容差区间
在本节中,我们将通过计算数据样本的容差区间的示例。
首先,让我们定义我们的数据样本。我们将创建一个 100 个观测样本,从高斯分布绘制,平均值为 50,标准差为 5。
# generate dataset
data = 5 * randn(100) + 50
在这个例子中,我们假设我们不知道真实的总体均值和标准差,并且必须估计这些值。
由于必须估计人口参数,因此存在额外的不确定性。例如,对于 95%的覆盖率,我们可以使用与估计平均值的 1.96(或 2)标准差作为公差间隔。我们必须估计样本的平均值和标准偏差并考虑这种不确定性,因此间隔的计算稍微复杂一些。
接下来,我们必须指定自由度的数量。这将用于计算临界值和计算间隔。具体而言,它用于计算标准偏差。
请记住,自由度是计算中可以变化的值的数量。在这里,我们有 100 个观测值,因此有 100 个自由度。我们不知道标准偏差,因此必须使用均值估算。这意味着我们的自由度将是(N-1)或 99。
# specify degrees of freedom
n = len(data)
dof = n - 1
接下来,我们必须指定数据的比例范围。在这个例子中,我们对 95%的中间数据感兴趣。比例为 95.我们必须改变这一比例,使其覆盖 95%的中间值,即从第 2.5 百分位数到第 97.5 百分位数。
我们知道 95%的临界值是 1.96,因为我们经常使用它;尽管如此,我们可以直接在 Python 中计算它,假设反向生存函数的百分比为 2.5%。这可以使用 norm.isf()SciPy 函数计算。
# specify data coverage
prop = 0.95
prop_inv = (1.0 - prop) / 2.0
gauss_critical = norm.isf(prop_inv)
接下来,我们需要计算覆盖范围的置信度。我们可以通过从给定的自由度和期望概率的 Chi Squared 分布中检索临界值来实现这一点。我们可以使用 chi2.isf()SciPy 函数。
# specify confidence
prob = 0.99
chi_critical = chi2.isf(q=prob, df=dof)
我们现在有了所有的部分来计算高斯容差区间。计算如下:
interval = sqrt((dof * (1 + (1/n)) * gauss_critical²) / chi_critical)
dof
是自由度数,n
是数据样本的大小,gauss_critical
是临界值,如 95%覆盖率为 1.96 人口中,chi_critical
是所希望的置信度和自由度的 Chi Squared 临界值。
interval = sqrt((dof * (1 + (1/n)) * gauss_critical**2) / chi_critical)
我们可以将所有这些组合在一起并计算数据样本的高斯容差区间。
下面列出了完整的示例。
# parametric tolerance interval
from numpy.random import seed
from numpy.random import randn
from numpy import mean
from numpy import sqrt
from scipy.stats import chi2
from scipy.stats import norm
# seed the random number generator
seed(1)
# generate dataset
data = 5 * randn(100) + 50
# specify degrees of freedom
n = len(data)
dof = n - 1
# specify data coverage
prop = 0.95
prop_inv = (1.0 - prop) / 2.0
gauss_critical = norm.isf(prop_inv)
print('Gaussian critical value: %.3f (coverage=%d%%)' % (gauss_critical, prop*100))
# specify confidence
prob = 0.99
chi_critical = chi2.isf(q=prob, df=dof)
print('卡方 critical value: %.3f (prob=%d%%, dof=%d)' % (chi_critical, prob*100, dof))
# tolerance
interval = sqrt((dof * (1 + (1/n)) * gauss_critical**2) / chi_critical)
print('Tolerance Interval: %.3f' % interval)
# summarize
data_mean = mean(data)
lower, upper = data_mean-interval, data_mean+interval
print('%.2f to %.2f covers %d%% of data with a confidence of %d%%' % (lower, upper, prop*100, prob*100))
首先运行该示例计算并打印高斯和 Chi 平方分布的相关临界值。打印公差,然后正确显示。
Gaussian critical value: 1.960 (coverage=95%)
卡方 critical value: 69.230 (prob=99%, dof=99)
Tolerance Interval: 2.355
47.95 to 52.66 covers 95% of data with a confidence of 99%
随着样本的大小增加,展示公差间隔将如何减小(变得更精确)也是有帮助的。
下面的例子通过计算同一个小型人为问题的不同样本大小的容差区间来证明这一点。
# plot tolerance interval vs sample size
from numpy.random import seed
from numpy.random import randn
from numpy import sqrt
from scipy.stats import chi2
from scipy.stats import norm
from matplotlib import pyplot
# seed the random number generator
seed(1)
# sample sizes
sizes = range(5,15)
for n in sizes:
# generate dataset
data = 5 * randn(n) + 50
# calculate degrees of freedom
dof = n - 1
# specify data coverage
prop = 0.95
prop_inv = (1.0 - prop) / 2.0
gauss_critical = norm.isf(prop_inv)
# specify confidence
prob = 0.99
chi_critical = chi2.isf(q=prob, df=dof)
# tolerance
tol = sqrt((dof * (1 + (1/n)) * gauss_critical**2) / chi_critical)
# plot
pyplot.errorbar(n, 50, yerr=tol, color='blue', fmt='o')
# plot results
pyplot.show()
运行该示例会创建一个图表,显示真实总体均值周围的容差区间。
我们可以看到,随着样本量从 5 个增加到 15 个,间隔变得更小(更精确)。
容差区间与样本大小的误差线图
扩展
本节列出了一些扩展您可能希望探索的教程的想法。
- 列出了可以在机器学习项目中使用公差间隔的 3 种情况。
- 找到具有高斯变量的数据集并为其计算公差间隔。
- 研究并描述一种计算非参数容差区间的方法。
如果你探索任何这些扩展,我很想知道。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
图书
- 了解新统计:影响大小,置信区间和元分析,2017 年。
- 统计间隔:从业者和研究人员指南,2017 年。
API
用品
摘要
在本教程中,您发现了统计公差间隔以及如何计算高斯数据的公差间隔。
具体来说,你学到了:
- 统计公差间隔提供了人口观察的界限。
- 容差间隔要求指定覆盖比例和置信度。
- 可以容易地计算具有高斯分布的数据样本的容差区间。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
机器学习中的统计书籍
原文:
machinelearningmastery.com/statistics-books-for-machine-learning/
统计方法用于应用机器学习项目的每个步骤。
这意味着必须充分掌握统计量的主要结果的基本原理以及相关统计方法的工作知识。
遗憾的是,许多计算机科学和软件工程学位课程都没有涵盖统计量。即使是这样,也可以自下而上,理论优先的方式进行教学,使得不清楚哪个部分与给定项目相关。
在这篇文章中,如果您希望快速了解应用统计量,您会发现一些我推荐的顶级介绍性书籍。
我拥有所有这些书的副本,但我不建议你购买和阅读所有书籍。首先,选择一本书,然后真正阅读它。
让我们开始吧。
机器学习统计书籍
摄影: Luis Rogelio HM ,保留一些权利。
概观
本节分为 3 部分;他们是:
- 大众科学
- 统计教科书
- 统计研究方法
大众科学
关于统计学的科普书籍是那些结合统计学重要发现的书籍,如故事和轶事中的正态分布和中心极限定理。
不要忽视这些类型的书籍。
尽管我已经阅读了统计学教科书,但我一直都在阅读它们。我推荐它们的原因是:
- 阅读起来既快捷又有趣。
- 他们经常对干燥材料给出新的视角。
- 他们是非专业观众。
它们将帮助向您展示为什么统计学的工作知识非常重要,以便您能够在应用机器学习中连接到您的特定需求。
有很多关于统计学的科普书籍;我建议的三个是:
赤裸统计:从数据中剥离恐惧
由 Charles Wheelan 撰写。
对于那些睡过统计量 101 的人来说,这本书是一本救星。 Wheelan 剥夺了奥术和技术细节,并专注于推动统计分析的潜在直觉。他澄清了诸如推理,相关性和回归分析等关键概念,揭示了偏见或粗心的各方如何操纵或歪曲数据,并向我们展示了辉煌和富有创造力的研究人员如何利用自然实验中的宝贵数据来解决棘手的问题。
醉汉的行走:随机性如何规范我们的生活
由 Leonard Mlodinow 撰写。
凭借出生的故事讲述者的叙事和富有想象力的方法,Leonard Mlodinow 生动地展示了我们的生活是如何通过机会和随机性深刻了解的,以及从葡萄酒评级和企业成功到学校成绩和政治民意调查的一切都不如我们所认为的那么可靠。
信号和噪音:为什么这么多预言都会失败 - 但有些人不会
由 Nate Silver 撰写。
凭借他自己的开创性工作,Silver 检查预测世界,研究如何区分真实信号和大量噪声数据。大多数预测都会失败,往往会给社会带来巨大代价,因为我们大多数人对概率和不确定性的理解都很差。专家和外行人都错误地对更准确的预测进行了更自信的预测。但过度自信往往是失败的原因。如果我们对不确定性的理解得到改善,我们的预测也会变得更好。这就是“预测悖论”:我们对预测能力的谦虚程度越高,我们在规划未来方面就越成功。
你有一本关于统计学的最喜欢的科普书吗?
请在下面的评论中告诉我。
(更软)统计教科书
您需要一个可靠的参考文本。
教科书包含您需要了解的方法的理论,解释和方程式。
不要阅读这些书籍封面;相反,一旦你知道你需要什么,请阅读这些书籍以了解这些方法。
在本节中,我已经包括了一系列书籍,其中包括(按顺序)一本正确的统计教科书,一本用于非数学背景的书籍,以及一本有编程背景的书籍。
选择一本适合您背景的书。
所有统计量:统计推断的简明课程
由 Larry Wasserman 撰写。
这本书包括现代主题,如非参数曲线估计,自举和分类,这些主题通常被归入后续课程。推测读者知道微积分和一点线性代数。不需要先前的概率和统计知识。统计,数据挖掘和机器学习都与收集和分析数据有关。
普通英语统计
由 Timothy C. Urdan 撰写。
这本入门教材提供了一个廉价,简要的统计概述,以帮助读者更好地理解统计工作的方式以及如何正确地解释它们。每一章都描述了一种不同的统计技术,从集中趋势和描述分布等基本概念到更高级的概念,如 t 检验,回归,重复测量方差分析和因子分析。每一章都以统计量的简短描述开始,以及何时应该使用统计量。接下来是对统计工作原理的更深入解释。最后,每一章都以使用统计量为例,以及如何编写使用统计量的分析结果以供发布的样本。还包括统计术语和符号的词汇表。使用作者自己的数据和来自已发表的研究和大众媒体的例子,这本书是一个简单易懂的统计指南。
数据科学家实用统计:50 个基本概念
由 Peter Bruce 和 Andrew Bruce 撰写(作者)
统计方法是数据科学的关键部分,但很少有数据科学家接受任何正式的统计训练。从数据科学的角度来看,基础统计学的课程和书籍很少涵盖这一主题。本实用指南介绍了如何将各种统计方法应用于数据科学,告诉您如何避免误用,并为您提供重要和不重要的建议。
许多数据科学资源包含统计方法,但缺乏更深入的统计视角。如果您熟悉 R 编程语言,并且对统计量有所了解,则此快速参考以可访问的可读格式填补空白。
你最喜欢的统计教科书是什么?
请在下面的评论中告诉我。
统计研究方法
一旦掌控了基础,就需要知道在不同情况下使用哪种统计方法。
许多应用的机器学习涉及设计和执行实验,并且需要统计方法来有效地设计这些实验并解释结果。
这意味着您需要在研究背景下扎实掌握统计方法。
本节提供了一些关于此主题的重要书籍。
很难找到关于这个主题的好书,这些书不太理论化或专注于专有的 SPSS 软件平台。第一本书是强烈推荐和一般的,第二本使用免费的 R 平台,最后一本是关于该主题的经典教科书。
人工智能的经验方法
由 Paul R. Cohen 撰写。
与其他科学一样,计算机科学和人工智能尤其没有研究方法的课程。本书介绍了研究复杂计算机程序的经验方法:帮助查找数据模式的探索工具,实验设计和假设测试工具,以帮助数据令人信服地说话,以及建模工具以帮助解释数据。虽然这些技术中有许多是统计学的,但本书在更广泛的实证企业的背景下讨论了统计学。前三章介绍了经验问题,探索性数据分析和实验设计。对统计假设检验的直接询问推迟到第四章和第五章,分别介绍了经典参数方法和计算机密集型(Monte Carlo)重采样方法。这是以精确,可访问的方式呈现这些新的,灵活的重采样技术的少数书籍之一。
统计研究方法:非统计学家指南
由 Roy Sabo 和 Edward Boone 撰写。
本教材将帮助非统计学科的研究生,高级本科研究人员和健康科学研究人员学习,使用和交流许多常用统计方法的结果。所涵盖的材料及其呈现方式描述了从假设生成到在手稿中写出结果的整个数据分析过程。章节涵盖了以下主题:一个和两个样本比例,多类别数据,一个和两个样本均值,方差分析和回归。在整篇文章中,作者使用非统计语言解释统计程序和概念。这种可访问的方法完成了学术论文的方法和结果部分的实际示例和样本报告。该文本还允许同时使用编程语言 R,编程语言 R 是由统计社区创建,维护和更新的开源程序。 R 免费提供且易于下载。
实验者统计:设计,创新和发现
由 George E. P. Box,J。Stuart Hunter 和 William G. Hunter 撰写。
重新编写和更新,这个新版的实验统计量采用与标志性的第一版相同的方法,通过示例,易于理解的图形和适当使用计算机进行教学。催化创新,解决问题和发现,第二版为实验者提供了最大化从研究数据中获得的知识所需的科学和统计工具,说明了如何在调查过程的所有阶段最好地利用这些工具。作者的实际方法从一个需要解决的问题开始,然后检查设计和分析的适当统计方法。
你有一本关于统计研究方法的书吗?
请在下面的评论中告诉我?
摘要
您需要具备统计学基础才能在应用机器学习中发挥作用。
这种接地不一定是第一次,但它需要在你的旅程中发生一段时间。
我认为你通过统计学的道路应该从一本书开始,但实际上必须涉及很多实践。这是一个应用领域。我建议为您在此过程中学习的每个关键概念开发代码示例
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
你读过有关统计学的好书吗?
请在下面的评论中告诉我。
评估机器学习模型的统计量
原文:
machinelearningmastery.com/statistics-for-evaluating-machine-learning-models/
Tom Mitchell 1997 年出版的经典着作“_ 机器学习 _”提供了一章专门用于评估机器学习模型的统计方法。
统计量提供了一组重要的工具,用于机器学习项目的每个步骤。在不使用统计方法的情况下,从业者无法有效地评估机器学习模型的技能。不幸的是,统计量对大多数开发人员和计算机科学毕业生来说都是陌生的。这使得 Mitchell 的开创性机器学习文章中的章节成为从业者阅读的重要内容(如果不是必需的话)。
在这篇文章中,您将发现 Mitchel 推荐的统计方法,用于评估和比较机器学习模型。
阅读这篇文章后,你会知道:
- 如何计算分类准确度或误差的置信区间。
- 计算置信区间的统计基础。
- 如何一般比较机器学习算法的表现。
让我们开始吧。
评估机器学习模型的统计量
皮埃尔(雷恩)的照片,保留一些权利。
机器学习书
Tom Mitchell 撰写了可能是应用机器学习的经典教科书,名为“机器学习”并于 1997 年发布。
在书中,他将整章专门用于评估机器学习模型和算法所需的统计方法。具体来说,第五章标题为“_ 评估假设 _”。
第五章介绍了统计和估算理论的基本概念,重点是使用有限的数据样本评估假设的准确率。这包括计算用于估计假设准确度的置信区间和用于比较学习方法的准确率的方法。
- 第 16 页,机器学习,1997。
在这篇文章中,我们将仔细研究本章,并回顾当时米切尔推荐的统计方法。自本书出版 20 年以来,统计方法的基本原理并没有改变,现在可能同样有用和相关。
值得注意的是,当米切尔提到假设时,他指的是学习模型,即在数据集上运行学习算法的结果。评估和比较假设意味着比较学习模型,这与评估和比较机器学习算法不同,机器学习算法可以针对来自相同问题或不同问题的不同样本进行训练。
第五章评估假设分为 7 个部分;他们如下:
- 5.1。动机
- 5.2。估计假设的准确率
- 5.3。采样理论基础
- 5.4。推导置信区间的一般方法
- 5.5。两个假设的误差差异
- 5.6。比较学习算法
- 5.7。总结和进一步阅读
我们将花时间查看每个部分,并总结统计方法和建议。
动机
本章首先阐述了评估机器学习中假设的重要性。
凭经验评估假设的准确率是机器学习的基础。
- 第 128 页,机器学习,1997。
本章的动机是三个问题;他们是:
- 鉴于在有限的数据样本中观察到的假设的准确率,这与其他示例相比估计其准确率的程度如何?
- 鉴于一个假设在一些数据样本上优于另一个假设,这种假设在一般情况下更可能是多么可能?
- 当数据有限时,使用这些数据来学习假设和估计其准确率的最佳方法是什么?
这三个问题密切相关。
第一个问题引起了对模型技能估计误差的担忧,并激发了对置信区间的需求。
第二个问题引起了对基于小样本的模型技能做出决策的担忧,并激发了统计假设检验。
最后,第三个问题考虑了小样本的经济使用,并激发了重采样方法,如 k-fold 交叉验证。
本章讨论了评估学习假设的方法,比较两个假设的准确率的方法,以及当只有有限数据可用时比较两种学习算法的准确率的方法。
- 第 129 页,机器学习,1997。
动机结束时提醒人们难以估计假设的技巧。特别是在模型技能估计中引入偏差和方差:
- 估计偏差。当在训练数据上评估模型时,通过在保持测试集上评估模型来克服该模型。
- 估计的方差。在独立测试集上评估模型时,通过使用更大的测试集来克服。
估计假设的准确率
必须估计模型的技能或预测误差,并且作为估计,它将包含误差。
通过区分模型的真实误差和估计的或样本误差,可以清楚地看出这一点。
一个是假设对可用数据样本的错误率。另一个是假设对整个未知分布 D 的错误率。
- 第 130 页,机器学习,1997。
- 样本错误。估计对数据样本计算的真实误差。
- 真实错误。模型将从域中错误分类随机选择的示例的概率。
我们想知道真正的错误,但我们必须使用估计值,从数据样本中近似。这就提出了一个给定的误差估计有多好的问题?
一种方法是计算样本误差周围的置信区间,该置信区间足够大以覆盖具有非常高可能性的真实误差,例如 95%。
假设误差测量是离散比例,例如分类误差,则置信区间的计算计算如下:
1997 年机器学习中分类误差
置信区间的计算。
其中error_s
是样本误差,n
是用于计算样本误差的测试集中的实例总数,而 1.96 是高斯分布中可能性为的临界值。 95%。
采样理论基础
从前一节计算置信区间的公式做了很多假设。
本节通过这些假设进行工作,以便为计算提供理解的基础。
本节介绍统计和采样理论的基本概念,包括概率分布,期望值,方差,二项式和正态分布,以及双侧和单侧区间。
- 第 132 页,机器学习,1997。
有用的是,提供了一个表格,总结了本节的主要概念,如下所示。
计算置信区间的关键统计概念摘要
取自机器学习,1997。
本节为置信区间提供了重要的统计基础,建议阅读。
为了避免重复所有这一理论,该部分的关键如下:
- 分类准确度和分类误差等比例值符合二项分布。
- 二项分布表征二元事件的概率,例如硬币翻转或正确/不正确的分类预测。
- 均值是分布中的预期值,方差是样本与均值之间的平均距离,标准差是由数据样本的大小归一化的方差。
- 理想情况下,我们寻求具有最小方差的我们期望参数的无偏估计。
- 置信区间提供了量化群体参数(例如均值)中的不确定性的方法。
- 对于大样本大小,二项分布可以用更简单的高斯分布近似,例如, 30 次或更多次观察。
- 间隔可以以称为双侧的平均值为中心,但也可以是单侧的,例如平均值的左侧或右侧的半径。
推导置信区间的一般方法
给定计算比例值的置信区间的等式和等式背后的统计推理,给出了计算置信区间的一般程序。
该程序总结如下。
计算置信区间的一般程序
取自机器学习,1997 年。
还给出了中心极限定理。可以通过以下发现来概括:独立观察的和(或平均值的归一化和)将代表来自高斯分布的样本。例如,不同独立数据样本上的模型的平均技能将是高斯的。
这是一个非常宝贵的发现,因为我们对高斯分布非常了解,并且可以评论属于相同或不同高斯分布的两个样本(平均值)的可能性,例如在机器学习算法的技能的情况下。
中心极限定理是一个非常有用的事实,因为它暗示每当我们定义一个估计量是一些样本的均值(例如,误差(h)是平均误差)时,控制该估计量的分布可以用正态分布近似。对于足够大的 n。
- 第 143 页,机器学习,1997。
两个假设的误差差异
本节着眼于将计算置信区间的一般程序应用于两个模型之间分类误差的估计差异。
该方法假设每个模型都是在不同的独立数据样本上进行训练的。因此,计算两个模型之间误差的置信区间会增加每个模型的方差。
两种模型之间误差差异的置信区间
取自机器学习,1997。
本节还介绍了统计假设检验作为计算置信区间的替代方法。
在某些情况下,我们感兴趣的是某些特定猜想的真实概率,而不是某些参数的置信区间。
- 第 145 页,机器学习,1997。
有趣的是,该主题的动机是单侧置信区间的可能性,该区间包含模型的真实误差估计,以便确定一个模型比另一个模型更好的概率。
我发现这个解释不太清楚。
比较学习算法
本章的最后一部分内容侧重于机器学习算法的比较。
这与比较模型(假设)不同,因为比较算法涉及训练它们并且可能在来自域的多个不同数据样本上评估它们。
通过估计两种方法之间的预期或平均差异来推动两种算法的比较。提出了一种使用 k 折交叉验证的过程,其中每个算法都在相同的数据分割上进行训练和评估。计算误差的最终平均差异,从中可以估计置信区间。
更新置信区间的计算以考虑减少的自由度数,因为在同一测试集上评估每个算法。
配对 T 检验作为统计假设检验引入,用于量化两种方法属于相同(或不同)分布的可能性。该测试可以与概述的程序一起使用,但仅当每个训练和测试集包含独立样本时,事实与默认的 k 折交叉验证不同。
特别是,在这种理想化的方法中,我们修改了表 5.5 的过程,以便在每次循环中通过循环生成一个新的随机训练集 Si 和新的随机测试集 Ti,从这个底层实例分布中抽取而不是从固定样本中绘制做
- 第 148 页,机器学习,1997。
本节最后概述了比较机器学习算法时的实际考虑因素。
Mitchell 提醒我们,在我们使用重采样方法的情况下,学生的 t 检验在技术上并不适用。尽管如此,他建议使用 k 折交叉验证或随机采样来估计模型误差估计的方差,因为它们是唯一可用的方法。
这不太理想,因为统计测试的期望将被违反,增加了 I 类错误。
明智的是要记住,当可用数据有限时,统计模型很少完全符合测试学习算法的实际约束。然而,它们确实提供了近似置信区间,这对于解释学习方法的实验比较有很大帮助。
- 第 150 页,机器学习,1997。
总结和进一步阅读
本章最后总结了主要观点,可以完成的练习以确认对方程的理解,以及一系列参考文献和进一步阅读。
简而言之,要点是:
- 置信区间可用于量化模型误差的不确定性。
- 置信区间的计算在很大程度上取决于估计数量的分布。
- 模型技能评估中的错误原因是估计偏差,评估训练数据集上的模型将引入乐观偏差。
- 模型技能评估中的错误的另一个原因是估计方差,其可以通过增加保持测试大小来减少。
- 使用 k-fold 交叉验证程序进行重采样提供了一种比较机器学习算法的有效方法。
- 在使用统计方法时,我们必须做出假设,例如围绕参数分布的假设。即使有置信区间,我们也不知道什么是真的,只是可能的。
有趣的是, Thomas Dietterich 的两份技术报告被引用。 Dietterich 接着发表了 1998 年重要的题为“用于比较监督分类学习算法的近似统计检验”的论文,该论文描述了在比较机器学习算法与随机重采样和 k 折叠时配对 T 检验的不可靠性交叉验证。
进一步阅读
如果您希望深入了解,本节将提供有关该主题的更多资源。
摘要
在这篇文章中,您发现了用于评估和比较机器学习模型的统计方法。
具体来说,你学到了:
- 如何计算分类准确度或误差的置信区间。
- 计算置信区间的统计基础
- 如何一般比较机器学习算法的表现。
你有任何问题吗?
在下面的评论中提出您的问题,我会尽力回答。
机器学习中的统计(7 天迷你课程)
原文:
machinelearningmastery.com/statistics-for-machine-learning-mini-course/
机器学习速成课程统计。
_ 获取 7 天机器学习中使用的统计量。_
统计学是一门数学领域,普遍认为这是更深入理解机器学习的先决条件。
虽然统计量是一个具有许多深奥理论和发现的大型领域,但机器学习从业者需要从该领域获取的螺母和螺栓工具和符号。凭借统计量的坚实基础,可以专注于好的或相关的部分。
在本速成课程中,您将了解如何在七天内开始并自信地阅读和实现使用 Python 进行机器学习的统计方法。
这是一个重要且重要的帖子。您可能想要将其加入书签。
让我们开始吧。
机器学习统计(7 天迷你课程)
摄影: Graham Cook ,保留一些权利。
谁是这个速成课?
在我们开始之前,让我们确保您在正确的位置。
本课程适用于可能了解某些应用机器学习的开发人员。也许你知道如何使用流行的工具来完成预测性建模问题的端到端,或者至少是大多数主要步骤。
本课程的课程会假设您的一些事情,例如:
- 你知道你的基本 Python 编程方式。
- 你可能知道一些基本的 NumPy 用于数组操作。
- 您希望学习统计量,以加深您对机器学习的理解和应用。
你不需要知道:
- 你不需要成为一个数学家!
- 您不需要成为机器学习专家!
这个速成课程将带您从了解机器学习的开发人员到可以浏览统计方法基础知识的开发人员。
注意:此速成课程假设您有一个至少安装了 NumPy 的 Python3 SciPy 环境。如果您需要有关环境的帮助,可以按照此处的分步教程进行操作:
速成课程概述
这个速成课程分为七个课程。
您可以每天完成一节课(推荐)或在一天内完成所有课程(硬核)。这取决于你有空的时间和你的热情程度。
下面列出了七个课程,这些课程将帮助您开始并提高 Python 中机器学习的统计量:
- 第 01 课:统计和机器学习
- 第 02 课:统计学概论
- 第 03 课:高斯分布和描述性统计
- 第 04 课:变量之间的相关性
- 第 05 课:统计假设检验
- 第 06 课:估算统计
- 第 07 课:非参数统计
每节课可能需要 60 秒或 30 分钟。花点时间,按照自己的进度完成课程。在下面的评论中提出问题甚至发布结果。
课程期望你去学习如何做事。我会给你提示,但每节课的部分内容是强迫你学习去哪里寻求帮助以及统计方法和 NumPy API 以及 Python 中最好的工具(提示:我直接在这个博客上得到了所有的答案;使用搜索框)。
在评论中发布您的结果;我会为你加油!
挂在那里;不要放弃。
注意:这只是一个速成课程。有关更多详细信息和充实的教程,请参阅我的书,题为“机器学习统计方法”。
第 01 课:统计和机器学习
在本课程中,您将了解机器学习从业者应该加深对统计学的理解的五个原因。
1.数据准备统计
在为您的机器学习模型准备训练和测试数据时需要统计方法。
这包括以下技术:
- 异常值检测。
- 缺少价值归责。
- 数据采样。
- 数据扩展。
- 变量编码。
以及更多。
需要对数据分布,描述性统计和数据可视化有基本的了解,以帮助您确定执行这些任务时要选择的方法。
2.模型评估统计
在评估机器学习模型对训练期间未见的数据的技能时,需要统计方法。
This includes techniques for:
- 数据采样。
- 数据重采样。
- 实验设计。
机器学习从业者通常很好地理解诸如 k 折交叉验证之类的重采样技术,但是为什么需要这种方法的理由却不是。
3.模型选择中的统计
在选择用于预测性建模问题的最终模型或模型配置时,需要统计方法。
这些包括以下技术:
- 检查结果之间的显着差异。
- 量化结果之间差异的大小。
这可能包括使用统计假设检验。
4.模型演示中的统计
在向利益相关者介绍最终模型的技能时,需要统计方法。
This includes techniques for:
- 总结模型的预期技能平均值。
- 在实践中量化模型技能的预期变化。
这可能包括估计统计量,如置信区间。
5.预测统计
在使用新数据的最终模型做出预测时,需要统计方法。
This includes techniques for:
- 量化预测的预期可变性。
这可能包括估计统计量,如预测间隔。
你的任务
在本课程中,您必须列出您个人想要学习统计量的三个原因。
在下面的评论中发表您的答案。我很乐意看到你想出了什么。
在下一课中,您将发现统计量的简明定义。
第 02 课:统计学概论
在本课程中,您将发现统计量的简明定义。
统计量是大多数应用机器学习书籍和课程的必备先决条件。但究竟什么是统计量?
统计学是数学的一个子领域。它指的是一组处理数据和使用数据来回答问题的方法。
这是因为该领域包含一系列用于处理数据的方法,对于初学者而言,这些方法看起来很大且无定形。很难看到属于统计的方法和属于其他研究领域的方法之间的界限。
当谈到我们在实践中使用的统计工具时,将统计领域划分为两大类方法可能会有所帮助:用于汇总数据的描述性统计量和用于从数据样本中得出结论的推论统计量。
- 描述性统计:描述性统计是指将原始观察汇总为我们可以理解和分享的信息的方法。
- 推论统计:推论统计是一种奇特的名称,有助于从一小组获得的观察结果(称为样本)中量化域或种群的属性。
Your Task
在本课程中,您必须列出可用于每个描述性和推理统计量的三种方法。
在下面的评论中发表您的答案。我很乐意看到你发现了什么。
在下一课中,您将发现高斯分布以及如何计算摘要统计。
第 03 课:高斯分布和描述性统计
在本课程中,您将发现数据的高斯分布以及如何计算简单的描述性统计量。
数据样本是来自更广泛群体的快照,可以从域中获取或由流程生成。
有趣的是,许多观察结果符合称为正态分布的常见模式或分布,或者更正式地说,符合高斯分布。这是您可能熟悉的钟形分布。
关于高斯分布的知识很多,因此,存在可以与高斯数据一起使用的统计和统计方法的整个子场。
任何高斯分布,以及从高斯分布中提取的任何数据样本,都可以用两个参数进行汇总:
- 平均值。分布中的中心趋势或最可能的价值(钟的顶部)。
- 方差。观察值与分布中的平均值(差值)之间的平均差异。
均值的单位与分布的单位相同,尽管方差的单位是平方的,因此难以解释。方差参数的一个流行替代方案是标准差,它只是方差的平方根,返回的单位与分布的单位相同。
可以直接在 NumPy 中的数据样本上计算均值,方差和标准差。
下面的示例生成从高斯分布绘制的 100 个随机数的样本,其已知均值为 50,标准差为 5,并计算汇总统计量。
# calculate summary stats
from numpy.random import seed
from numpy.random import randn
from numpy import mean
from numpy import var
from numpy import std
# seed the random number generator
seed(1)
# generate univariate observations
data = 5 * randn(10000) + 50
# calculate statistics
print('Mean: %.3f' % mean(data))
print('Variance: %.3f' % var(data))
print('Standard Deviation: %.3f' % std(data))
运行该示例并将估计的平均值和标准偏差与预期值进行比较。
Your Task
在本课程中,您必须在 Python 中从零开始计算一个描述性统计量,例如计算样本均值。
Post your answer in the comments below. I would love to see what you discover.
在下一课中,您将了解如何量化两个变量之间的关系。
课 04:变量之间的相关性
在本课程中,您将了解如何计算相关系数以量化两个变量之间的关系。
数据集中的变量可能由于许多原因而相关。
它可用于数据分析和建模,以更好地理解变量之间的关系。两个变量之间的统计关系称为它们的相关性。
相关性可能是正的,意味着两个变量在相同的方向上移动,或者是负的,这意味着当一个变量的值增加时,其他变量的值会减少。
- 正相关:两个变量在同一方向上变化。
- 中性相关:变量变化没有关系。
- 负相关:变量方向相反。
如果两个或多个变量紧密相关,某些算法的表现可能会恶化,称为多重共线性。一个例子是线性回归,其中应删除一个违规的相关变量,以提高模型的技能。
我们可以使用称为 Pearson 相关系数的统计方法量化两个变量样本之间的关系,该方法以该方法的开发者 Karl Pearson 命名。
pearsonr()
NumPy 函数可用于计算两个变量样本的 Pearson 相关系数。
下面列出了完整的示例,显示了一个变量依赖于第二个变量的计算。
# calculate correlation coefficient
from numpy.random import seed
from numpy.random import randn
from scipy.stats import pearsonr
# seed random number generator
seed(1)
# prepare data
data1 = 20 * randn(1000) + 100
data2 = data1 + (10 * randn(1000) + 50)
# calculate Pearson's correlation
corr, p = pearsonr(data1, data2)
# display the correlation
print('Pearsons correlation: %.3f' % corr)
运行示例并查看计算的相关系数。
Your Task
在本课程中,您必须加载标准机器学习数据集并计算每对数值变量之间的相关性。
Post your answer in the comments below. I would love to see what you discover.
在下一课中,您将发现统计假设检验。
第 05 课:统计假设检验
在本课程中,您将发现统计假设检验以及如何比较两个样本。
必须解释数据以增加含义。我们可以通过假设特定结构来解释数据,并使用统计方法来确认或拒绝假设。
该假设称为假设,用于此目的的统计检验称为统计假设检验。
统计检验的假设称为零假设,或假设为零(简称 H0)。它通常被称为默认假设,或者假设没有任何变化。违反测试假设通常被称为第一个假设,假设为 1,或简称为 H1。
- 假设 0(H0):测试的假设成立并且未被拒绝。
- 假设 1(H1):测试的假设不成立并且在某种程度上被拒绝。
我们可以使用 p 值来解释统计假设检验的结果。
在零假设为真的情况下,p 值是观察数据的概率。
概率很大意味着可能存在 H0 或默认假设。一个较小的值,例如低于 5%(o.05)表明它不太可能并且我们可以拒绝 H0 而支持 H1,或者某些东西可能不同(例如显着结果)。
广泛使用的统计假设检验是 Student’s t 检验,用于比较两个独立样本的平均值。
默认假设是样本之间没有差异,而拒绝此假设表明存在一些显着差异。测试假设两个样本均来自高斯分布并具有相同的方差。
Student’s t-test 可以通过ttest_ind()
SciPy 函数在 Python 中实现。
下面是计算和解释已知不同的两个数据样本的 T 检验的示例。
# student's t-test
from numpy.random import seed
from numpy.random import randn
from scipy.stats import ttest_ind
# seed the random number generator
seed(1)
# generate two independent samples
data1 = 5 * randn(100) + 50
data2 = 5 * randn(100) + 51
# compare samples
stat, p = ttest_ind(data1, data2)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
print('Same distributions (fail to reject H0)')
else:
print('Different distributions (reject H0)')
运行代码并查看计算的统计值和 p 值的解释。
Your Task
在本课程中,您必须列出三个其他统计假设检验,可用于检查样本之间的差异。
Post your answer in the comments below. I would love to see what you discover.
在下一课中,您将发现估计统计量作为统计假设检验的替代方法。
第 06 课:估算统计
在本课程中,您将发现可用作统计假设检验替代方法的估算统计量。
统计假设检验可用于指示两个样本之间的差异是否是由于随机机会,但不能评论差异的大小。
被称为“_ 新统计 _”的一组方法正在增加使用而不是 p 值或者除了 p 值之外,以便量化效应的大小和估计值的不确定性的量。这组统计方法称为估计统计。
估算统计是描述三种主要方法类别的术语。三种主要
类方法包括:
- 效果大小。用于量化治疗或干预的效果大小的方法。
- 区间估计。量化值的不确定性的方法。
- Meta 分析。在多个类似研究中量化结果的方法。
在这三种中,应用机器学习中最有用的方法可能是区间估计。
间隔有三种主要类型。他们是:
- 容差区间:具有特定置信水平的分布的一定比例的界限或覆盖范围。
- 置信区间:总体参数估计的界限。
- 预测区间:单次观察的界限。
计算分类算法的置信区间的简单方法是计算二项式比例置信区间,其可以提供围绕模型的估计精度或误差的区间。
这可以使用confint()
Statsmodels 函数在 Python 中实现。
该函数将成功(或失败)计数,试验总数和显着性水平作为参数,并返回置信区间的下限和上限。
下面的例子在一个假设的案例中证明了这个函数,其中模型从具有 100 个实例的数据集中做出了 88 个正确的预测,并且我们对 95%置信区间感兴趣(作为 0.05 的显着性提供给函数)。
# calculate the confidence interval
from statsmodels.stats.proportion import proportion_confint
# calculate the interval
lower, upper = proportion_confint(88, 100, 0.05)
print('lower=%.3f, upper=%.3f' % (lower, upper))
运行示例并查看估计准确度的置信区间。
Your Task
在本课程中,您必须列出两种方法,用于计算应用机器学习中的效果大小以及它们何时有用。
作为提示,考虑一个用于变量之间的关系,一个用于样本之间的差异。
Post your answer in the comments below. I would love to see what you discover.
在下一课中,您将发现非参数统计方法。
第 07 课:非参数统计
在本课程中,您将发现当数据不是来自高斯分布时可能使用的统计方法。
统计和统计方法领域的很大一部分专用于已知分布的数据。
分布未知或不易识别的数据称为非参数。
在使用非参数数据的情况下,可以使用专门的非参数统计方法来丢弃有关分布的所有信息。因此,这些方法通常被称为无分秘籍法。
在可以应用非参数统计方法之前,必须将数据转换为等级格式。因此,期望排名格式的数据的统计方法有时被称为排名统计,例如排名相关和排名统计假设检验。排名数据正如其名称所示。
程序如下:
- 按升序对样本中的所有数据进行排序。
- 为数据样本中的每个唯一值分配 1 到 N 的整数等级。
用于检查两个独立样本之间差异的广泛使用的非参数统计假设检验是 Mann-Whitney U 检验,以 Henry Mann 和 Donald Whitney 命名。
它是 T 检验的非参数等价物,但不假设数据是从高斯分布中提取的。
该测试可以通过mannwhitneyu()
SciPy 函数在 Python 中实现。
下面的例子演示了从已知不同的均匀分布中抽取的两个数据样本的测试。
# example of the mann-whitney u test
from numpy.random import seed
from numpy.random import rand
from scipy.stats import mannwhitneyu
# seed the random number generator
seed(1)
# generate two independent samples
data1 = 50 + (rand(100) * 10)
data2 = 51 + (rand(100) * 10)
# compare samples
stat, p = mannwhitneyu(data1, data2)
print('Statistics=%.3f, p=%.3f' % (stat, p))
# interpret
alpha = 0.05
if p > alpha:
print('Same distribution (fail to reject H0)')
else:
print('Different distribution (reject H0)')
运行该示例并查看计算的统计量和 p 值的解释。
Your Task
在本课程中,您必须列出另外三种非参数统计方法。
Post your answer in the comments below. I would love to see what you discover.
这是迷你课程的最后一课。
结束!
(看你有多远)
你做到了。做得好!
花点时间回顾一下你到底有多远。
你发现:
- 统计学在应用机器学习中的重要性。
- 统计的简明定义和方法划分为两种主要类型。
- 高斯分布以及如何使用统计量来描述具有此分布的数据。
- 如何量化两个变量的样本之间的关系。
- 如何使用统计假设检验检查两个样本之间的差异。
- 统计假设检验的替代方法称为估计统计。
- 不从高斯分布中提取数据时可以使用的非参数方法。
这只是您的机器学习统计量的开始。继续练习和发展你的技能。
下一步,查看我的书机器学习统计方法。
摘要
你是怎么做迷你课程的?
你喜欢这个速成课吗?
你有任何问题吗?有没有任何问题?
让我知道。在下面发表评论。