浅谈机器学习的效能衡量指标 (4) -- 检定力分析(Power Analysis)

前言

上一次谈到『假设检定』(Hypothesis Testing),它可以检定一项实验是否有显着性的效果,但是,我们要蒐集多少样本才能验证实验的可靠度呢? 这时就要借助『检定力分析』(Power Analysis)来帮我们解决这个问题。

假设检定与检定力分析

回顾一下假设检定之混淆矩阵(Confusion Matrix),详细的说明请参阅这一篇。

http://img2.58codes.com/2024/20001976n8iId27Svj.png
图. 假设检定之混淆矩阵(Confusion Matrix)

假设检定是在避免『型一误差』(Type I Error),即效果不显着时(H0为真),我们却误认为实验有效(H1为真),相对的,『型二误差』(Type II Error)是当效果显着时(H0为假),却误认为实验无效(H1为假),检定力分析希望避免此一错误,亦即当效果显着时,我们有多少机率可以侦测到此一效果,因此,两者是互补的分析方法。

『型二误差』以β表示,检定力(Power) 等于 1 - β。 例如Power = 0.2,就表示只有20%的机率,可以侦测到效果是显着的,因此建议检定力通常设为 0.8 或更高。

样本数计算

检定力与样本大小(n)、效应值(effect size)高度相关,三者在给定的临界值(α)下,形成一等式的关係。
效应值(effect size)是指干预组和控制组之间差异量,其绝对值越大表示效应越强,也就是差异越明显。因此,科学家 Cohen 定义下表说明效应值(Cohen's d)的效果:

#效应值(d)意义1.0 - 0.2可忽视的2.0.2 - 0.5小3.0.5 - 0.8中4.0.80 +大

效应值(d) = 0.2,表示希望干预组比控制组差异达20%,若效应值设的很小,表示我们希望能侦测到很小的差异,所以,需要的样本数就要很大。

所以,进一步设定检定力与效应值的水準,就可以知道我们要蒐集多少样本才够,计算很简单,statsmodels 套件直接支援如下:

from statsmodels.stats.power import tt_ind_solve_power# effect_size: 效应值# nobs1: 样本数,设为 None,表示要求算样本数# alpha:临界值(α)# power: 检定力# ratio: 干预组与控制组的样本数比例,若不等于1,nobs1 算出来的是较少的样本数,nobs2 = nobs1 * ratio# alternative: 单尾或双尾检定,单尾再分右尾(larger)及左尾(smaller)tt_ind_solve_power(effect_size=0.2, nobs1 = None, alpha=0.05, power=0.8, ratio=1, alternative='two-sided')

函数传回的结果是每组需要蒐集的样本数,若ratio不等于1,则另一组样本数(nobs2) = nobs1 * ratio。

结论

谈到这里,对于机器学习要蒐集多少样本,準确率/精确率/召回率才具有公信力,构建了一个初步的概念,同时也是这一系列的文章告一段落了(江郎才尽)。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章