过拟合

阿里天池全国社保比赛心得

廉价感情. 提交于 2020-08-11 15:42:38
最近时间都忙于参加阿里天池的全国社会保险大数据应用创新大赛,终于结束,最终全国排名第7,总共是1336只队伍参加,还是很激动进了前10,今天想把一些体悟写一下,希望对后来参加的人有用。这个比赛是完成数据算法模型的开发设计,实现对各类医疗保险基金欺诈违规行为的准确识别,根据给出的数据情况,最开始有两个思路,1.从就诊记录入手,找到可疑的就诊记录,然后拼接到人上 2.直接构造人的可疑程度的行为特征。两者都试过,最终选择了后者,因为题目给出的欺诈标签主要是人的欺诈标签,并没有给出某次就诊行为的欺诈标签。另外,此次的评测指标是F1值,这个非常重要,你要知道你最终排名都是看的这个值。下面我从三个方面讲一下这次比赛的心得。 一、特征 可能没参加比赛前很难理解 特征决定上限 的这个真理,特征特征才是最重要的! 一定要看特征重要度,要不断尝试,有些组合到一起反而降低,有些特征看着不重要,你把他去了 可是结果却会出现下降的情况,因为特征和特征之间是有关系的。 在重要特征做深入处理的收益远大于在次要特征中继续做。 汇总信息有些时候会丢失信息,比如我们最开始将医院数据进行了汇总,计算每个人去一级医院,二级医院,三级医院的个数,反而没有把所有医院的维度扩充好。 观察和了解你的数据很重要。观察数据发现患者同一天在同一个医院有药费,有治疗费分别出现不同的就诊id,包括挂号的费用也是不同的id

统计学-统计学方法三要素:策略

允我心安 提交于 2020-08-11 15:35:00
1、损失函数 :度量预测错误的程度,评估模型单次预测的好坏。   a: 0-1损失函数 : $L(Y,f(X))=\begin{cases}0 & \text{ if } Y=f(X) \\ 1 & \text{ if } Y\neq f(X) \end{cases}$    b: 平方损失函数 : $L(Y,f(X))=(Y-f(X))^2$    c: 绝对损失函数 : $L(Y,f(X))=\left | Y-f(X) \right |$   d: 对数损失函数 : $L(Y,p(Y|X))=-log(p(Y|X))$ 2、风险函数 :损失函数的期望,评估模型平均预测好坏。 $R_{exp}(L(Y,f(X)))=\int_{x*y}L(Y,f(X))p(X,Y)dxdy$   经验风险:关于训练集的平均损失。 $R_{emp}(L(Y,f(X)))=\frac{1}{n}\sum L(Y,f(X))$    经验风险最小化: $\underset{F \epsilon f}{min}\frac{1}{n}\sum L(Y,f(X))$ eg:当模型是条件概率,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。   结构风险:是为了防止过拟合。 $R_{srm}(L(Y,f(X)))=\frac{1}{n}\sum L(Y,f(X))+\lambda J(f)$

ILSVRC-ImageNet历年竞赛冠军

妖精的绣舞 提交于 2020-08-11 14:44:01
ImageNet 是一个超过15 million的图像数据集,大约有22,000类。 是由李飞飞团队从2007年开始,耗费大量人力,通过各种方式(网络抓取,人工标注,亚马逊众包平台)收集制作而成,它作为论文在CVPR-2009发布。当时人们还很怀疑通过更多数据就能改进算法的看法。 深度学习发展起来有几个关键的因素,一个就是庞大的数据(比如说ImageNet),一个是GPU的出现。(还有更优的深度模型,更好的优化算法,可以说数据和GPU推动了这些的产生,这些产生继续推动深度学习的发展)。 ILSVRC 是一个比赛,全称是ImageNet Large-Scale Visual Recognition Challenge,平常说的ImageNet比赛指的是这个比赛。 使用的数据集是ImageNet数据集的一个子集,一般说的ImageNet(数据集)实际上指的是ImageNet的这个子集,总共有1000类,每类大约有1000张图像。具体地,有大约1.2 million的训练集,5万验证集,15万测试集。 ILSVRC 从2010年开始举办,到2017年是最后一届 (在算法层面已经刷过拟合了,再比下去意义不是很大了)。ILSVRC-2012的数据集被用在2012-2014年的挑战赛中(VGG论文中提到)。ILSVRC-2010是唯一提供了test set的一年。

基于度量的元学习和基于优化的元学习

☆樱花仙子☆ 提交于 2020-08-11 13:20:44
在介绍两种主流的元学习方法之前,先简要概括下元学习与监督学习的区别。 监督学习: 只在一个任务上做训练; 只有一个训练集和一个测试集; 学习的是样本之间的泛化能力; 要求训练数据和测试数据满足独立同分布; 监督学习的训练和测试过程分别为train和test; 小样本条件下监督学习的过程如图所示。 监督学习过程 元学习: 元学习是面向多个任务做联合训练; 每个任务都有训练集和测试集; 学习到的是任务之间的泛化能力; 要求新任务与训练任务再分布上尽可能一致; 元学习的训练和测试过程分别叫做Meta-train和Meta-test; 小样本条件下元学习过程如下图所示。更多元学习的细节内容可以参见: 小样本学习方法专栏 元学习过程 介绍两种类型的元学习方法 在元学习过程中元学习器Meta-learner是学习过程的重要一环,承接着Meta-train和Meta-test两个阶段。针对元学习器的搭建,近年来主流的方法模型如下图所示。 主流元学习模型 从基于度量和基于优化的角度可以将上述模型分为两大类,基于度量的元学习模型:MatchingNet、ProtoNet、RelationNet等,基于优化的元学习模型:MAML、Reptile、LEO等。下面对上述模型一一的做个简要的介绍: 基于度量的三个元学习模型 基于度量的三个元学习模型的示意图如下图所示: MatchingNet:Support

最新校招京东、百度、头条算法面试真题分享

蓝咒 提交于 2020-08-11 13:00:53
1 .京东面试经历 面试的京东的商品推荐的算法岗,在北辰大厦(奥森旁边),面试难度总体来说比较简单。 ①:到公司之后先做了一个小时的笔试题目 ,包括四个简答题和两个编程题,简答题主要是 C语言相关的。 Map和Set的插入和查找的复杂度是多少,Set是否可以存储类 递归和循环可以互相转换吗? epull和select的原理以及区别? 什么时候会调用构造函数和析构函数?父类的构造函数可以是virtual的吗? 编程题也特别简单,一道题是一个有序的数组,寻找数组的中的两个数它们的和是否等 于某 个值target,返回True或者False,要求O(n)的复杂度。 另一道题目是一个数组,两个相邻下标的数组的值的差的绝对值为1,然后在这个数组中寻找 某个值是否在这个数组中,是的话返回下标,否则返回-1。 ②:第一轮面试也特别简单 ,主要就是聊了聊自己的论文是怎么做的,实习的时候干了啥, 然后再出了一道编程题,一个无序数组,只有0,1,2,然后你要对这个数组进行排序,要求 O(n)复杂度。(荷兰国旗问题) ③:第二轮面试也是主要是聊了聊自己的论文 ,然后推导SVM的原理,然后logistic和SVM 的区别,Attention注意力机制的原理,RNN的公式等。 还有一个编程题反转链表。 面试完三天拿到了口头offer,感觉总体来说还是比较简单的。 今天收到了京东的录用函

机器学习入门:极度舒适的GBDT原理拆解

亡梦爱人 提交于 2020-08-11 11:05:40
机器学习入门:极度舒适的GBDT拆解 本文旨用小例子+可视化的方式拆解GBDT原理中的每个步骤,使大家可以彻底理解GBDT Boosting → Gradient Boosting Boosting是集成学习的一种基分类器(弱分类器)生成方式,核心思想是通过迭代生成了一系列的学习器,给误差率低的学习器高权重,给误差率高的学习器低权重,结合弱学习器和对应的权重,生成强学习器。 Boosting算法要涉及到两个部分,加法模型和前向分步算法。 加法模型就是说强分类器由一系列弱分类器线性相加而成。一般组合形式如下: $$F_M(x;P)=\sum_{m=1}^n\beta_mh(x;a_m)$$ 其中,$h(x;a_m)$就是一个个的弱分类器,$a_m$是弱分类器学习到的最优参数,$β_m$就是弱学习在强分类器中所占比重,P是所有$α_m$和$β_m$的组合。这些弱分类器线性相加组成强分类器。 前向分步就是说在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得来的。也就是可以写成这样的形式: $$F_m (x)=F_{m-1}(x)+ \beta_mh_m (x;a_m)$$ Gradient Boosting = Gradient Descent + Boosting Boosting 算法(以AdaBoost为代表)用错分数据点来识别问题,通过调整错分数据点的权重来改进模型

机器学习入门:极度舒适的GBDT原理拆解

北城以北 提交于 2020-08-11 06:32:46
机器学习入门:极度舒适的GBDT拆解 本文旨用小例子+可视化的方式拆解GBDT原理中的每个步骤,使大家可以彻底理解GBDT Boosting → Gradient Boosting Boosting是集成学习的一种基分类器(弱分类器)生成方式,核心思想是通过迭代生成了一系列的学习器,给误差率低的学习器高权重,给误差率高的学习器低权重,结合弱学习器和对应的权重,生成强学习器。 Boosting算法要涉及到两个部分,加法模型和前向分步算法。 加法模型就是说强分类器由一系列弱分类器线性相加而成。一般组合形式如下: $$F_M(x;P)=\sum_{m=1}^n\beta_mh(x;a_m)$$ 其中,$h(x;a_m)$就是一个个的弱分类器,$a_m$是弱分类器学习到的最优参数,$β_m$就是弱学习在强分类器中所占比重,P是所有$α_m$和$β_m$的组合。这些弱分类器线性相加组成强分类器。 前向分步就是说在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得来的。也就是可以写成这样的形式: $$F_m (x)=F_{m-1}(x)+ \beta_mh_m (x;a_m)$$ Gradient Boosting = Gradient Descent + Boosting Boosting 算法(以AdaBoost为代表)用错分数据点来识别问题,通过调整错分数据点的权重来改进模型

七月算法机器学习 11 决策树、随机森林、 adaboost

≯℡__Kan透↙ 提交于 2020-08-11 05:15:32
目录 主要内容 决策树 信息增益 三种决策树学习算法 决策树的例子 决策树的过拟合 Bootstraping Bagging的策略 随机森林 提升的概念 Adaboost 举例 主要内容 决策树  决策树学习采用的是自顶向下的递归方法,  其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,  此时每个叶节点中的实例都属于同一类。  有监督学习  建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有一下三种算法。  ID3  C4.5  CART 信息增益 三种决策树学习算法 决策树的例子 决策树的过拟合  决策树对训练属于有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象。  剪枝  随机森林 Bootstraping  Bootstraping的名称来自成语“pull up by yourown bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法。  注: Bootstrap本义是指高靴子口后面的悬挂物、小环、带子,是穿靴子时用手向上拉的工具。“pullup by your own bootstraps”即“通过拉靴子让自己上升”,意思是“不可能发生的事情”。后来意思发生了转变,隐喻“不需要外界帮助,仅依靠自身力

第8章 多项式回归与模型泛化 学习笔记下

这一生的挚爱 提交于 2020-08-10 21:04:24
8-7 偏差方差平衡 用学生的姓名来预测成绩,就会偏差很大,特征不对 knn对数据很敏感,一旦离它近的数据不合理或有问题则结果就不对,高度于依赖于样本数据 knn当使用所有样本时,即就是看哪个多就是哪个,则偏差最大,方差最小 机器学习的主要挑战,来自于方差,这是从算法的角度来说。 但对问题本身而言就不一定了,因为问题可能就很复杂,我们对其理解很肤浅。 方差可能就是学习了数据样本的噪音导致的 深度学习数据规模要足够多才可能有好的效果 8-8 模型泛化与岭回归08-Model-Regularization-and-Ridge-Regression 多项式回归过拟合的情况,有一些系数会很大,模型正则化就是限制其不要太大 很显然一些参数超级大 要考虑theta也尽可能的小,不需要theta0,它是截距,决定线的高低 限制theta的大小 alpha是新超参数,表示theta占的比重,如alpha为零则没有theta,如果为无穷大,则theta尽量小才能使目标尽可能小 这种方法又称为岭回归 from sklearn.pipeline import Pipeline from sklearn.preprocessing import PolynomialFeatures from sklearn.preprocessing import StandardScaler from sklearn

最新校招京东、百度、头条算法面试真题分享

大兔子大兔子 提交于 2020-08-10 18:20:12
1 .京东面试经历 面试的京东的商品推荐的算法岗,在北辰大厦(奥森旁边),面试难度总体来说比较简单。 ①:到公司之后先做了一个小时的笔试题目 ,包括四个简答题和两个编程题,简答题主要是 C语言相关的。 Map和Set的插入和查找的复杂度是多少,Set是否可以存储类 递归和循环可以互相转换吗? epull和select的原理以及区别? 什么时候会调用构造函数和析构函数?父类的构造函数可以是virtual的吗? 编程题也特别简单,一道题是一个有序的数组,寻找数组的中的两个数它们的和是否等 于某 个值target,返回True或者False,要求O(n)的复杂度。 另一道题目是一个数组,两个相邻下标的数组的值的差的绝对值为1,然后在这个数组中寻找 某个值是否在这个数组中,是的话返回下标,否则返回-1。 ②:第一轮面试也特别简单 ,主要就是聊了聊自己的论文是怎么做的,实习的时候干了啥, 然后再出了一道编程题,一个无序数组,只有0,1,2,然后你要对这个数组进行排序,要求 O(n)复杂度。(荷兰国旗问题) ③:第二轮面试也是主要是聊了聊自己的论文 ,然后推导SVM的原理,然后logistic和SVM 的区别,Attention注意力机制的原理,RNN的公式等。 还有一个编程题反转链表。 面试完三天拿到了口头offer,感觉总体来说还是比较简单的。 今天收到了京东的录用函