涉及书中内容:特征工程&&模型评估

不同的特征如何进行特征工程?

特征是原始数据作为输入,特征工程的结果,作为输入供算法和模型使用。

对于数值型特征,为消除特征间的量纲影响,应对特征进行归一化处理,使得不同指标之间具有可比性。常用归一化方法:线性函数归一化(Max-min Scaling)、零均值归一化。在实际应用中,通过梯度下降求解的模型通常是需要归一化的,但对于决策树,归一化并不改变样本在某个特征上的信息增益,因此,对于决策树模型,特征归一化与否并不影响结果。

对于类别型特征,除决策树模型可以接受字符串作为输入,逻辑回归、支持向量机等模型都需要将类别型特征进行编码,转换为数值型特征。常用的编码方式有:序号编码、独热编码、二进制编码等。

为了提高复杂关系的拟合能力,在特征工程中经常把一阶离散特征两两组合,构成高阶特征,若特征x1的数量为m、特征x2的数量为n,则组合特征相关的参数为m*n,当m和n均很大时,学习变得困难。一种行之有效的方法是将两个特征均用k维的低维向量表示,即通过降维来减少两个高维特征组合后需要学习的参数。上述采用两个特征两两组合得到高维特征,并不是很有效,可以通过决策树实现更加有效的特征组合,每一条从根节点到叶节点的路径都可以看成是一种特征组合的方式。

模型评估中不同的指标用在什么场景中?

对于分类模型,常用的评估指标有:错误率(error)和精度(accuracy)、查准率(Precision)和查全率(Recall)、ROC和AUC等。

精度(Accuracy)指的是分类正确的样本占样本总数的比例,错误率指的是分类错误的样本占样本总数的比例;

查准率指的是预测为正的样本中真正正样本的占比,查全率指的是预测为正且确实为正的样本占所有正样本的比例,即数据集中正样本的召回率;

ROC曲线的横坐标为假阳率(False Positive Rate,FPR)、纵坐标为真阳率(True Positive Rate,TPR),FPR计算的是预测为正的负样本占真实负样本的比例,TPR计算的是预测为正的正样本占真实正样本的比例;AUC计算的是ROC曲线下的面积,一般取值在0.5~1之间,AUC值越大说明模型分类性能越好。

精度和错误率既适用于二分类任务,也适用于多分类任务。PR曲线和ROC/AUC主要针对二分类问题提出的,对于多分类问题,可以将其转换为多个二分类问题,然后求均值得到最终的PR曲线或ROC曲线。ROC曲线相对PR曲线,对样本分布变化更加鲁棒,即增加测试集中负样本的数量不会造成ROC曲线的变换,但是严重干扰PR曲线。

对于回归模型,常用的评估指标有:MAE、MSE、RMSE等。

MAE指的是平均绝对值误差、MSE指的是均方差、RMSE指的是平方根误差。

一般情况下,平方根误差能够很好地反应回归模型预测与真实值的偏离程度,但是离群点(Outlier)对RMSE的干扰很大,容易噪声RMSE指标的失效。相应的解决方案,可以是判断离群点是否为噪声,如果是噪声可以将其过滤掉;也可以进一步提高模型的预测能力;或者改进评估指标,新指标可以通过归一化的方式消除离群点的影响,书中采用差值/真实值,即计算百分比误差来达到目的。

作者:iSherryZhang

出处:https://www.cnblogs.com/shuezhang/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

百面机器学习--跟课Task整理的更多相关文章

  1. 机器学习技法课之Aggregation模型

    Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...

  2. C# 异步编程Task整理(二)异常捕捉

    一.在任务并行库中,如果对任务运行Wait.WaitAny.WaitAll等方法,或者求Result属性,都能捕获到AggregateException异常. 可以将AggregateExceptio ...

  3. 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图

    http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...

  4. Andrew机器学习第一课

    批梯度下降算法:      训练样本为一个时:更新Θi 让代价函数最小,利用沿梯度下降方向函数会变得越来越小.这个函数是代价函数J关于(Θi )的.这里并没有在讨论x,y. 关于为什么式子(图是复制的 ...

  5. C# 异步编程Task整理(一)

    一.简介 .Net Framework 4.0新增了一个System.Threading.Tasks命名空间,它包含的类提供了任务的相关操作.使用任务不仅可以获得一个抽象层,还能对底层线程进行很多统一 ...

  6. Google内部培训过1.8万人的机器学习速成课

    什么是(监督)机器学习?简而言之,它是以下几点: ML系统学习如何组合输入以产生对从未见过的数据的有用预测. 我们来探讨基本的机器学习术语. 标签 一个标签是我们预测物品的属性,比如变量y在简单线性回 ...

  7. 机器学习- Numpy基础 吐血整理

    Numpy是专门为数据科学或者数据处理相关的需求设计的一个高效的组件.听起来是不是挺绕口的,其实简单来说就2个方面,一是Numpy是专门处理数据的,二是Numpy在处理数据方面很牛逼(肯定比Pytho ...

  8. 李宏毅老师机器学习第一课Linear regression

    机器学习就是让机器学会自动的找一个函数 学习图谱: 1.regression example appliation estimating the combat power(cp) of a pokem ...

  9. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

随机推荐

  1. Codeforces 816C/815A - Karen and Game

    传送门:http://codeforces.com/contest/816/problem/C 本题是一个模拟问题. 有一个n×m的矩阵.最初,这个矩阵为零矩阵O.现有以下操作: a.行操作“row  ...

  2. IT培训机构的招生诈骗大曝光

    作者曾在某知名IT培训机构工作过,目睹了招生欺诈,后来作者果断辞职,不能为奸商工作,助纣为虐,在此曝光,以免学生的血汗钱白交.社会上的IT培训机构手法大都一样,奸商都是有套路的.X大青鸟,X内外企IT ...

  3. 【Mail.Ru Cup 2018 Round 2 C】 Lucky Days

    [链接] 我是链接,点我呀:) [题意] [题解] 题解的作者: manish_joshi 对于任意一个k 因为那条直线(关于x,y的方程可以看出一条直线)的斜率>= 所以肯定会经过第一象限. ...

  4. 0818基于360开源数据库流量审计MySQL Sniffer

    开源数据库流量审计MySQL Sniffer 我最推崇的数据库安全产品就是基于流量的数据库审计,因为它不需要更改网络结构,并且也是最关键的是,不影响数据库服务器性能,不用苦口婆心的劝数据库管理员安装监 ...

  5. Mycat连接数据库之后导致表名全小写的问题分析研究

    初步研究:通过部署发现在Mycat中部署逻辑表表名大小写混合时,在Mycat连接后出现全变小.容易造成错误逻辑表(按混合表名创建物理表): 可能拯救的方法: 1.Linux下部署安装MySQL,默认不 ...

  6. MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决

    解决办法: [Edit]->[Preference]->[SQL Editor] 将下图DBMS connection read time out (in seconds)适当调大: 参考 ...

  7. Linux去重命令uniq(转)

    注意:需要先排序sort才能使用去重. Linux uniq命令用于检查及删除文本文件中重复出现的行列. uniq可检查文本文件中重复出现的行列. 语法 uniq [-cdu][-f<栏位> ...

  8. eclipse重置页面恢复到最初布局状态

    eclipse重置页面恢复到最初布局状态 window->perspective->reset perspective

  9. UVa Problem 10051

    这题有点类似LIS,由于颜色最多100种,所以只需建立一个100的数组,按对立面的关系以某种颜色为向上面的最大值就可以了.   #include <iostream> #include & ...

  10. Centos6.2中配置tomcat

    这里我使用的是tomcat6, 我使用的是server版本号的Centos, 前提是安装而且配置好了JDK. 首先通过samba把我的tomcat压缩包, 复制到了共享的文件夹.然后移动到./usr文 ...