如何回答简历问题:
全国数学建模竞赛做了什么:
给出一批多个路口的交通流量的视频,基于交通密度来估计车辆变道的风险
主要是负责模型的建立,建立了多车道的微分方程交通流模型。建立了交通密度流和实时车速相关的变道风险体系,以此实现了车辆变道的风险估计。
Kaggle竞赛(随机森林和SVM的boosting)怎么处理特征
年龄—与是否存活有非线性关系,选择随机森林预测年龄缺失值
船舱等级—对其进行哑处理
性别
单个特征
若正负样本不均衡,使得正负样本均衡。
对离散特征进行哑变量处理(DummyCoding)。
缺失值过多舍去,连续缺失值用均值填充或者利用算法预测(比如随机森林)
多个特征
特征抽取:数据部降维PCA,LLE(线性局嵌入)
特征选择:自变量和目标变量之间的关联:
求相关系数(Person–描述线性相关)[-1,1],互信息(MI)和最大信息系数(MIC)
想把互信息直接用于特征选择其实不是太方便:1、它不属于度量方式,也没有办法归一化,在不同数据及上的结果无法做比较;2、对于连续变量的计算不是很方便(X和Y都是集合,x,y都是离散的取值),通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。
距离相关系数,客服皮尔森相关系数的弱点。皮尔森系数为0不能判断两个变量之间是否独立(Person判断线性相关,=0可能是非线性相关)。如果距离相关系数=0则两个变量独立
响应变量和自变量之间为非线性关系较强,基于树的算法(随机森林或决策树)或扩展的线性模型回归系数,选择特征。这时候注意过拟合问题。
有些机器学习方法本身就具有对特征进行打分的机制,或者很容易将其运用到特征选择任务中,例如回归模型,SVM,决策树,随机森林等等。
–为了提高泛化能力,损失函数后面可以加正则项L1,L2。
–对于L1而言,正则项非0,要想让损失达到最小,迫使弱变量前系数变为0,故得到学习到的模型为稀疏。特征集合中具有相关联的特征,当数据发生细微变化时也有可能导致很大的模型差异。
–L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数
(不熟不说)
模型的评估 PCA LR和SVM GBDT
模型评估
bias描述的是根据训练集上拟合出的模型的输出预测结果的期望与样本真实结果的差距,简单讲,就是在样本上拟合的好不好想要low bias就是复杂化模型,增加模型参数,则容易过拟合(overfitting)。其中过拟合对应是上图high varience
varience描述的是样本上训练出来的模型在测试集上的表现,要想在varience上表现越小,泛化能力越强,就要简化模型,减少模型的参数,但这样容易欠拟合(unfitting),欠拟合对应上图是high bias。
过拟合情况:训练误差(偏差)与测试误差(方差)有很大的gap,训练误差不会超过期望误差
欠拟合情况:随着训练样本增大,偏差与方差没有很大的gap,偏差会超过期望误差
PCA,LLE
PCA是一种对原始高维空间进行线性变换从而获得低维空间,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。原空间协方差矩阵的前N最大的特征值对应的特征向量,构成了新的坐标系
流形保持了局部欧式距离的特性,LLE的思想为 保持邻域内样本之间的线性关系保持不变,在高维空间的线性权重保留在低维空间,从而求出低维空间的坐标
LR
LR算法描述?二值分类,数据对分类边界(wX+b)建立回归公式,每个特征乘以回归系数加上偏置得到分类边界,带入Sigmoid函数得到0-1f范围的数,>0.5分为正类,<0.5分为负类
如何确定最佳拟合系数?:梯度上升法:沿着函数梯度方向寻找最大值,每次更新回归系数需要遍历整个数据集(??)所以使用了随机梯度(SGD)上升,一次只用一个样本点更新系数
LR对于非线性分类的描述?:将分类边界WX+b线性变为非线性
LR对于多分类的操作?考虑N个类别,拆解法将多分类任务拆解为二分类任务,将N个类别两两配对产生了N(N-1)/2,设定Ci为正例,Cj为负例。最后新样本测试用投票决定类别。
SVM
SVM适不适用于大数据?不适用 因为每层的参数过少 像神经网络具有较多参数的模型使用于大数据
描述SVM
1)找到具有最小间隔的数据点(这些点称为支持向量),再对该间隔最大化
数据点到超平面的距离就 是 该数据点和超平面上点 在法向量的投影
得到了最优化问题,其约束为不等式约束。
2)用拉格朗日乘子法可得到对偶问题。再写出对偶问题的拉格朗日函数。对w和b求导
在得到对偶问题过程中必须满足KKT条件, 1)要求拉格朗日系数>=0 2)当拉格朗日系数>0的时候,对应的样本点位于最大间隔边界上,这就是一个支持向量。
3)怎么得到对偶问题?
关于拉格朗日式子的max可以证明等价于
4)对偶问题是一个二次规划问题,用普通的二次规划求解,由于该问题的规模正比于训练样本数,开销很大。需要高效算法SMO。在SVM中SMO每次选择两个变量固定其他参中数,然后对对偶问题求解。
5)线性–>非线性 将内积转换为核函数:高斯核函数,将原始空间映射到无穷维空间。Python scikit包默认该核函数
Bagging和随机森林
个体学习器之间不存在依赖关系,并行生成结果
自助采样(优点:只使用了初始训练集的百分60左右的样本):随机抽取样本后放回再抽取,得到m个样本构成一个采样集。对每个采样集训练出基学习器,再将基学习器结合。对于分类任务使用投票制,对回归使用平均法。
Bagging关注于降低方差(模型在测试样本上的误差,方差越小泛化能力越强)。对于不剪枝、神经网络等容易受样本扰动的学习器,作用明细。
随机森林:Bagging中的基分类器换成决策树。同时对决策树引入了随机属性的选择。
决策树利用信息增益对结点的属性进行划分(d个属性),在随机森林中在d个属性随机选择属性子集(d’),在属性子集中用信息增益选择一个最优的属性。
随机森林的优势:Bagging是通过自主采样这样的方式对样本扰动,随机森林增加了属性扰动(随机选择K个子集)。泛化性可以通过学习器之间的差异进一步提升。
提升方法(boosting)
个体学习器之间存在强依赖关系,串行生成序列化
Adaboost:将弱学习器提升为强学习器。理解为基函数的线性组合,每个基函数代表学习器,系数理解为分类器的权重。最小化指数损失函数(求指数损失函数关于基函数的导数==0)。指数函数是分类任务0/1损失函数的一致替代函数。
注:boost在训练每一轮之前要检查生成的基学习器是否满足基本条件(比随机猜测好)
当前的基学习器若不满足,对没有更新权重的基学习器进行重采样,可以使学习过程维持T轮。 提高前一轮弱分类器错误分类样本的权值,降低被正确分类的样本权值
向前分步算法(一种迭代算法):因为学习的是加法模型(基函数的线性组合),从前往后每一步只学习一个基函数及其系数
提升方法实际采用加法模型与向前分步计算(AdaBoost是向前分步算法的特例,基函数为基本分类器,损失函数为指数函数),把决策树作为基函数的提升方法称为提升树
当损失函数为平方损失和指数损失,提神树的每一步优化是很简单的。但对于一般损失函数,每一步优化并不容易,所以有了梯度提升决策树GBDT(gradient boostin decision tree)–类似于梯度下降近似方法,关键是损失函数对的负梯度在当前模型的值 作为残差的近似值,拟合回归树。
协同过滤
CF 的两个分支:基于用户的 CF 和基于物品的 CF。这两种方法都需要计算相似度
把数据看成空间中的向量(降噪,归一化)
余弦夹角测相似度
用户的协同过滤,通过不同用户对物品的评分来评测用户间的相似性 。简单来讲就是:给用户推荐和他兴趣相似的其他用户喜欢的物品。
基于item的协同过滤:通过用户对不同item的评分来评测item间的相似性,基于
ite间的相似性做出推荐。 给用户推荐和他之前喜欢的物品相似的物品。
1、建立物品的同现矩阵
2、 建立用户对物品的评分矩阵
3、矩阵计算推荐结果
天池比赛 降水量预测
给出雷达对云层的反射率,每隔15分钟给出不同高度不同位置的反射率,预测一个小时后的降水量。四维数据:空间三维空间+时间。首先将大数据块处理为101*101*15*4–101*101*1大小为一张图,2000组数据预测,高维数据利用卷积神经网络进行降维49(7*7)*101*15*4,由于数据具有时序性,构建RNN网络实现预测。
CNN循环网络: