预测模型

回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss

谁说我不能喝 提交于 2019-12-03 09:52:38
回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss 2019-06-04 20:09:34 clover_my 阅读数 430 更多 分类专栏: 阅读笔记 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/clover_my/article/details/90777964 回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss 机器学习中所有的算法都需要最大化或最小化一个函数,这个函数被称为“目标函数”。其中,我们一般把最小化的一类函数,称为“损失函数”。它能根据预测结果,衡量出模型预测能力的好坏。 在实际应用中,选取损失函数会受到诸多因素的制约,比如是否有异常值、机器学习算法的选择、梯度下降的时间复杂度、求导的难易程度以及预测值的置信度等等。因此,不存在一种损失函数适用于处理所有类型的数据。损失函数大致可分为两类:分类问题的损失函数和回归问题的损失函数。这篇文章介绍不同种类的回归损失函数以及它们的作用。 1、MAE / L1 + MSE / L2 (1)平均绝对误差(MAE / L1) Y轴:MAE损失。X轴:预测值。 平均绝对误差(MAE)是一种用于回归模型的损失函数。MAE是目标值和预测值之差的绝对值之和

python分类预测模型的特点

巧了我就是萌 提交于 2019-12-03 09:42:52
python分类预测模型的特点 模型 模型特点 位于 SVM 强大的模型,可以用来回归,预测,分类等,而根据选取不同的和函数,模型可以是线性的/非线性的 sklearn.svm 决策树 基于"分类讨论,逐步细化"思想的分类模型,模型直观,易解释 sklearn.tree 朴素贝叶斯 基于概率思想的简单有效的分类模型,能够给出容易理解的概率解释 sklearn.naive_bayes 神经网络 具有强大的拟合能力,可疑用于拟合,分类等,它有多个增强版本,如递神经网络,卷积神经网络,自编吗器等,这些是深度学习的模型基础 Keras 逻辑回归 比较基础的线性分类模型,很多时候是简单有效的选择 sklearn.linear_model 随机森林 思想跟决策树类似,精度通常比决策树要高,缺点是由于随机性, 丧失了决策树的可解释性 sklearn.ensemble python建模的步骤: 建立一个对象(这个对象是空白的,需要进一步训练) 然后,我们要设置模型的参数 接着就是通过fit()方法对模型进行训练 最后通过predict()方法预测结果 对模型的评估score()方法等 聚类分析 常用聚类分析算法 与分类不同,聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法.与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可疑建立在吴磊标记的数据上

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

醉酒当歌 提交于 2019-12-03 05:24:13
Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络 朱晓霞 发表于 目标检测和深度学习 订阅 457 广告 关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 立即抢购 新智元报道 来源:arXiv 编译:肖琴、克雷格 【新智元导读】 深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在distillation这一想法做了一些前沿工作。今天我们介绍的是Hinton作为作者之一,谷歌大脑、DeepMind等的研究人员提交的distillation的更进一步工作:通过online distillation进行大规模分布式神经网络训练。该工作提出了Codistillation的概念,通过大规模实验,发现codistillation方法提高了准确性并加快了训练速度,并且易于在实践中使用。 论文地址:https://arxiv.org/pdf/1804.03235.pdf 在提出备受瞩目的“胶囊网络”(Capsule networks)之后,深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在 distillation 这一想法做了一些前沿工作,包括Distill the Knowledge in a Neural Network等。今天我们介绍的是Hinton作为作者之一,谷歌大脑

【机器学习】决策树(下)――CART算法及剪枝处理

匿名 (未验证) 提交于 2019-12-03 00:40:02
原文地址https://blog.csdn.net/HerosOfEarth/article/details/52425952 前言 :上篇博文已经介绍了ID3、C4.5生成决策树的算法。由于上文使用的测试数据以及建立的模型都比较简单,所以其泛化能力很好。但是,当训练数据量很大的时候,建立的决策树模型往往非常复杂,树的深度很大。此时虽然对训练数据拟合得很好,但是其泛化能力即预测新数据的能力并不一定很好,也就是出现了过拟合现象。这个时候我们就需要对决策树进行剪枝处理以简化模型。另外,CART算法也可用于建立回归树。本文先承接上文介绍完整分类决策树,再简单介绍回归树。 四、CART算法 CART,即分类与回归树(classification and regression tree),也是一种应用很广泛的决策树学习方法。但是CART算法比较强大,既可用作分类树,也可以用作回归树。作为分类树时,其本质与ID3、C4.5并有多大区别,只是选择特征的依据不同而已。另外,CART算法建立的决策树一般是二叉树,即特征值只有yes or no的情况(个人认为并不是绝对的,只是看实际需要)。当CART用作回归树时,以最小平方误差作为划分样本的依据。 1.分类树 (1)基尼指数 分类树采用基尼指数选择最优特征 。假设有 K K 个类,样本点属于第 k k 类的概率为 p k pk

sklearn中预测模型的score函数

匿名 (未验证) 提交于 2019-12-03 00:38:01
sklearn.linear_model .LinearRegression.score score(self, X, y, sample_weight=None) Returns the coefficient of determination R^2 of the prediction. The coefficient R^2 is defined as (1 - u/v), where u is the residual sum of squares ((y_true - y_pred) ** 2).sum() and v is the total sum of squares ((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0. 作用:返回该次预测的系数R =(1-u/v)。 其中可能得到的最好的分数是1,

sklearn中预测模型的score函数

匿名 (未验证) 提交于 2019-12-03 00:37:01
sklearn.linear_model .LinearRegression.score score(self, X, y, sample_weight=None) Returns the coefficient of determination R^2 of the prediction. The coefficient R^2 is defined as (1 - u/v), where u is the residual sum of squares ((y_true - y_pred) ** 2).sum() and v is the total sum of squares ((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0. 作用:返回该次预测的系数R =(1-u/v)。 其中可能得到的最好的分数是1,

Blending 和 Stacking

匿名 (未验证) 提交于 2019-12-03 00:34:01
stacking和blending是两种集成分类器的相似方法 Stacking stacking是一种分层模型集成框架。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为特征加入训练集进行再训练,从而得到完整的stacking模型。 以两层stacking模型为例,要得到stacking模型,关键在于如何构造第二层的特征(下记为元特征,meta feature),构造元特征的原则是尽可能的避免信息泄露,因此对原始训练集常常采用类似于K折交叉验证的划分方法。 以5折划分为例,我们将原始训练集分为5折,分别记为fold1、fold2、fold3、fold4和fold5。此时我们使用fold2-fold5的数据来训练基模型1,并对fold1进行预测,该预测值即作为基模型1对fold1生成的元特征;同样地,使用fold1、fold3-fold5的数据来训练基模型1,并对fold2进行预测,该预测值即作为基模型1对fold2生成的元特征;以此类推,得到基模型1对整个原始训练集生成的元特征。同样地,对其他基模型也采用相同的方法生成元特征,从而构成用于第二层模型(下记为元模型,meta model)训练的完整元特征集。对于测试集,我们可以在每次基模型训练好时预测,再将预测值做均值处理;也可以将基模型拟合全部的训练集之后再对测试集进行预测。

数据比赛常用预测模型:LGB、XGB与ANN

匿名 (未验证) 提交于 2019-12-03 00:30:01
现在的比赛,想要拿到一个好的名次,就一定要进行模型融合,这里总结一下三种基础的模型: - lightgbm :由于现在的比赛数据越来越大,想要获得一个比较高的预测精度,同时又要减少内存占用以及提升训练速度,lightgbm是一个非常不错的选择,其可达到与xgboost相似的预测效果。 - xgboost :在lightgbm出来之前,是打比赛的不二之选,现在由于需要做模型融合以提高预测精度,所以也需要使用到xgboost。 - ANN :得益于现在的计算机技术的高度发展,以及GPU性能的提高,还有Keras,tensorflow,pytorch等多重工具的使用,人工神经网络也可以作为最后模型融合的子模型之一,可以有效地提升最终的预测结果。 下面附上使用三个函数的Python代码,可以直接运行。(参考: https://blog.csdn.net/meyh0x5vdtk48p2/article/details/78816334 ) LGB def LGB_predict (train_x,train_y,test_x,res,index) : print( "LGB test" ) clf = lgb.LGBMClassifier( boosting_type= 'gbdt' , num_leaves= 31 , reg_alpha= 0.0 , reg_lambda= 1 ,

机器学习线性模型(3)

匿名 (未验证) 提交于 2019-12-03 00:22:01
多分类学习 ,考虑N个类别 C 1 , C 2 , … C N C 1 , C 2 , … C N ,多分类学习的基本思想就是: 将多分类任务拆为若干个二分类任务求解。 先对问题进行 拆分 ,拆出的每个二分类任务训练一个分类器,在测试时,对这些分类器的预测结果进行 集成 以获得最终的多分类结果。 最经典的拆分策略有三种: 一对一(OVO) ,对于N分类学习,OVO将这N个类别两两配对,从而产生 N ( N 1 ) / 2 N ( N 1 ) / 2 个二分类任务,在测试阶段,新样本同时提交给所有分类器,于是我们将得到 N ( N 1 ) / 2 N ( N 1 ) / 2 个分类结果,最终结果将由投票产生。 一对其余(OVR) ,每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器,在测试时,如果仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果,若有多个分类器预测为正类,通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为最终分类结果。 多对多(MVM) ,每次将若干类作为正类,将若干类作为反类,OVO和OVR是MVM的特例!正反类不能随便选!一种常用的MVM技术: 纠错输出码(ECOC) 比较OVO和OVR :OVO的存储开销和测试时间开销通常比OVR更大。在类别很多时,OVO的训练时间开销比OVR更小(OVO每个分类器仅用两个类的样例

[机器学习]集成学习--bagging、boosting、stacking

匿名 (未验证) 提交于 2019-12-03 00:19:01
集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务。 如何产生“好而不同”的个体学习器,是集成学习研究的核心。 集成学习的思路是通过合并多个模型来提升机器学习性能,这种方法相较于当个单个模型通常能够获得更好的预测结果。这也是集成学习在众多高水平的比赛如奈飞比赛,KDD和Kaggle,被首先推荐使用的原因。 一般来说集成学习可以分为三大类: 用于减少方差的bagging 用于减少偏差的boosting 用于提升预测结果的stacking 集成学习方法也可以归为如下两大类: 串行集成方法,这种方法串行地生成基础模型(如AdaBoost)。串行集成的基本动机是利用基础模型之间的依赖。通过给错分样本一个较大的权重来提升性能。 并行集成方法,这种方法并行地生成基础模型(如Random Forest)。并行集成的基本动机是利用基础模型的独立性,因为通过平均能够较大地降低误差。 大部分集成模型都通过一个基础学习算法来生成一个同质的基础学习器,即同类型的学习器,也叫同质集成。 有同质集成就有异质集成,为了集成后的结果表现最好,异质基础学习器需要尽可能准确并且差异性够大。 Bagging Bagging是引导聚合的意思。减少一个估计方差的一种方式就是对多个估计进行平均。例如,我们可以用训练集的不同子集(随机选择并替代??