| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习竞赛基础知识 -> 正文阅读 |
|
[人工智能]机器学习竞赛基础知识 |
1. 线下评估策略通常在数据竞赛中,参赛者是不能将全部数据都用于训练模型的,因为这会导致没有数据集对该模型的效果进行线下验证。为了解决这一问题,就要考虑如何对数据进行划分,构建合适的线下验证集。针对不同类型的问题,需要不同的线下验证方式,在此分为强时序性和弱时序性。 1.1 强时序性问题对于含有明显时间序列因素的赛题,可将其看作强时间序行问题,即线上数据的时间都在离线数据集之后,这种情况下就可以采用时间上最接近测试集的数据做验证集 例如,天池平台上的“乘用车零售量预测”竞赛,初赛提供 2012 年 1 月至 2017 年 10 月车型销售数据,需要参赛者预测 2017 年 11 月的车型销售数据。这是一个很明显的含时间序列因素的问题,那么我们可以选择数据集的最后一个月作为验证集。 1.2 弱时序性问题这类问题的验证方式主要为 K 折交叉验证,根据 K 的取值不同,会衍生出不同的交叉验证方式,具体如下。
下面给出通用的交叉验证代码,具体代码如下:
2. 评价指标2.1 分类指标(1)错误率与精度在分类问题中,错误率是分类结果错误的样本数占样本总数的比例,精度则是分类结果中正确的样本总数的比例。 (2)准确率与召回率假设一个肿瘤患病问题,患肿瘤的概率为0.5%,概率很小,对于这样一个一边概率远大于另一边的我们称为倾斜分类skewed class. 如果我们仍然采用accuracy来衡量这样的问题,那么对于一个始终预测y=0的模型,它预测上面的肿瘤问题的错误率也仅仅是0.5%. Accuracy = (true positives + true negatives) / (total examples) 为此,我们引入Precision和Recall 如下所示: 一般而言,Precision和Recall的图像不固定,不过都呈现上图中的趋势。 当我们设高阈值时,我们得到的预测结果中得到肿瘤的概率也就越大因而Precision越高,不过可能漏掉一部分肿瘤的可能也越大从而Recall越高。 (3)F1-scoreF1-score是权衡Precision和Recall后给出的一个评判模型的式子 (4)ROC 曲线ROC 曲线用于绘制采用不同分类阈值时的 TP 率(TPR)与 FP 率(FPR)。我们根据学习器的预测结果,把阈值从0变到最大,即刚开始是把每个样本作为正例进行预测,随着阈值的增大,学习器预测正样例数越来越少,直到最后没有一个样本是正样例。 TP率也叫真正例率,FP率也叫假正例率,注意区别于准确率和召回率。 (5)AUCAUC是一个极常用的评价指标,它定义为 ROC 曲线下的面积。之所以使用 AUC 作为评价指标,是因为ROC 曲线在很多时候并不嗯呢该清晰地说明哪个分类器的效果更好,而 AUC 作为一个数值,其值越大就代表分类器的效果越好。 (6)交叉熵? ln ? L ( w , b ) = ∑ i n ∑ k m ? y ^ k i ln ? f w , b ( x k i ) -\ln{L(w,b)} = \sum_{i}^{n}\sum_{k}^{m}-\hat{y}_k^i\ln{f_{w,b}(x^i_k)} ?lnL(w,b)=i∑n?k∑m??y^?ki?lnfw,b?(xki?) 其在二分类问题上的表现形式为: ? ln ? ( w , b ) = ∑ i n ? [ y ^ i ln ? f w , b ( x i ) + ( 1 ? y ^ i ) ln ? ( 1 ? f w , b ( x i ) ) ] -\ln{(w,b)} = \sum_{i}^{n}-[\hat{y}^{i}\ln{f_{w,b}(x^i)}+ (1-\hat{y}^{i})\ln{(1-f_{w,b}(x^i))}] ?ln(w,b)=i∑n??[y^?ilnfw,b?(xi)+(1?y^?i)ln(1?fw,b?(xi))] 举个栗子,假设我们的一个sample经过softmax后得到的 y = f w , b ( x ) = [ 0.9 0.1 ] y=f_{w,b}(x)=\begin{bmatrix} 0.9 \\ 0.1\\ \end{bmatrix}\quad y=fw,b?(x)=[0.90.1?],其label为 y ^ = [ 1 0 ] \hat{y}=\begin{bmatrix} 1 \\ 0\\ \end{bmatrix}\quad y^?=[10?],那么在第一个式子里计算出的值为 ? ( 1 ln ? 0.9 + 0 ln ? 0.1 ) = ? ln ? 0.9 -(1 \ln0.9+0\ln{0.1})=-\ln0.9 ?(1ln0.9+0ln0.1)=?ln0.9,第二计算结果即为 ? ln ? 0.9 ? 0 ln ? 0.1 -\ln0.9-0\ln0.1 ?ln0.9?0ln0.1。再比方说,我们的另一个sample经过softmax后得到的 y = f w , b ( x ) = [ 0.1 0.8 0.1 ] y=f_{w,b}(x)=\begin{bmatrix} 0.1 \\ 0.8 \\ 0.1\\ \end{bmatrix}\quad y=fw,b?(x)=???0.10.80.1????,其label为 y ^ = [ 0 1 0 ] \hat{y}=\begin{bmatrix} 0 \\ 1 \\ 0\\ \end{bmatrix}\quad y^?=???010????,此时我们有 ? ln ? L ( w , b ) = ? 0 ln ? 0.1 ? 1 ln ? 0.8 ? 0 ln ? 0.1 = ? ln ? 0.8 -\ln{L(w,b)}=-0\ln0.1-1\ln{0.8}-0\ln0.1=-\ln0.8 ?lnL(w,b)=?0ln0.1?1ln0.8?0ln0.1=?ln0.8 像上面这样我们如果有两个distribution的点 y ^ \hat{y} y^?和 y y y,我们记他们的交叉熵即为 H ( y ^ , y ) = ? ∑ k y ^ k ln ? y k H(\hat{y},y)=-\sum\limits_{k}\hat{y}_k\ln{y_k} H(y^?,y)=?k∑?y^?k?lnyk?. cross entropy交叉熵的含义是表达着两个distribution有多接近,如果这两个点的distribution一模一样的话,那它们计算出来的cross entropy就是0,用在我们这里的分类问题中,我们就是希望 y ^ \hat{y} y^?与 y y y越接近越好。 2.2 回归指标
3. 混淆矩阵和 heatmap混淆矩阵一图胜千言,其实就是对比实际和预测结果差异与关系的表格,之前讨论召回率时我们也有用过 heatmap热力图在实际中常用于展示一组变量的相关系数矩阵,在展示列联表的数据分布上也有较大的用途,通过热力图我们可以非常直观地感受到数值大小的差异状况。 其颜色可以直观地反映各变量之间的相关程度
简言之,混淆矩阵用于分析模型结果,heatmap则是用来分析数据的。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 4:34:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |