在男性前列腺癌数据中,有个feature叫PROSSUG,代表着这个患者是否接受过前列腺的手术,
这个feature很难说是病人患前列腺癌的‘原因’(患心脏病的原因是接受过心脏手术?),
而更像是一个标记,当然与病人是否患有前列腺癌极度相关。
依靠着这样的feature训练出来的模型,肯定能够得到很好的预测结果,
但对实际了解男性前列腺癌的成因,没有一点帮助。存在和利用这种倒‘因’为‘果’的feature的现象,叫数据竞赛中的Data Leakage。
数据泄露最常见的例子之一就是把未来资料的特徵当成训练集,
举个例子:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.8, shuffle=True)
这个语法很多人都用过吧,
没看过的这边简单说一下,该语法的作用就是将资料分成两堆,
一堆用作训练、一堆拿来检查模型的预测效果
为什麽该语法会有问题呢? 问题出在这里:
......, shuffle=True)
没错,他分资料的方式是把资料打乱抽选,这样会发生甚麽事呢?
要知道股市资料是典型的序列资料(Sequential data)
即前面与後面的资料有极强的关联性,随机抽选的话会直接打断该层连结
然而你会发现用这样训练出来的模型准确率异常高
为什麽呢,很简单,因为你把未来的特徵也加进去了:
试问假如今天我要用9月资料预测10月台积电价格,
结果你给的预测理由是:从10月的台泥开盘价看出来的,
为什麽会有这篇呢?
简单来说有个人试了半天预测模型,结果发现准确率都在50%左右
翻了半天论文发现大家都差不多,
论文的模型准确率在60%以上都算是优秀了,
Debug了半天後发现我参考的论文有这句:
It is important to note that the cases are not exactly consecutive trading days because we split our dataset randomly by shuffling.
呵呵,这个故事告诉我们论文来源要慎选,不然心态容易崩
From Unknown (我真的找不到这张的来源......)
安装方式 根据官网介绍,本次铁人赛会着重介绍下列三种安装方式: CDN连结 快速建立react环境的...
转换操作符 map/mapError map操作符会执行给定的闭包,将上游发布的内容进行转换,然後再...
前言 昨天我们完成了登入 接者今天我们来看看token可以做什麽用吧! 前端跟後端沟通时 我们就像拿...
Docker 基本操作 简单讲解一下Docker的概念,最重要的是两个地方: Image,Conta...
前言 看到今天标题 useState, 你可能会说我前面不是讲过了吗XD 其实之前那样算是直接跳过第...