百面机器学习--跟课Task整理
涉及书中内容:特征工程&&模型评估
不同的特征如何进行特征工程?
特征是原始数据作为输入,特征工程的结果,作为输入供算法和模型使用。
对于数值型特征,为消除特征间的量纲影响,应对特征进行归一化处理,使得不同指标之间具有可比性。常用归一化方法:线性函数归一化(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整理的更多相关文章
- 机器学习技法课之Aggregation模型
Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...
- C# 异步编程Task整理(二)异常捕捉
一.在任务并行库中,如果对任务运行Wait.WaitAny.WaitAll等方法,或者求Result属性,都能捕获到AggregateException异常. 可以将AggregateExceptio ...
- 《百面机器学习算法工程师带你去面试》高清PDF及epub+《美团机器学习实践》PDF及思维导图
http://blog.sina.com.cn/s/blog_ecd882db0102yuek.html <百面机器学习算法工程师带你去面试>高清PDF及epub+<美团机器学习实践 ...
- Andrew机器学习第一课
批梯度下降算法: 训练样本为一个时:更新Θi 让代价函数最小,利用沿梯度下降方向函数会变得越来越小.这个函数是代价函数J关于(Θi )的.这里并没有在讨论x,y. 关于为什么式子(图是复制的 ...
- C# 异步编程Task整理(一)
一.简介 .Net Framework 4.0新增了一个System.Threading.Tasks命名空间,它包含的类提供了任务的相关操作.使用任务不仅可以获得一个抽象层,还能对底层线程进行很多统一 ...
- Google内部培训过1.8万人的机器学习速成课
什么是(监督)机器学习?简而言之,它是以下几点: ML系统学习如何组合输入以产生对从未见过的数据的有用预测. 我们来探讨基本的机器学习术语. 标签 一个标签是我们预测物品的属性,比如变量y在简单线性回 ...
- 机器学习- Numpy基础 吐血整理
Numpy是专门为数据科学或者数据处理相关的需求设计的一个高效的组件.听起来是不是挺绕口的,其实简单来说就2个方面,一是Numpy是专门处理数据的,二是Numpy在处理数据方面很牛逼(肯定比Pytho ...
- 李宏毅老师机器学习第一课Linear regression
机器学习就是让机器学会自动的找一个函数 学习图谱: 1.regression example appliation estimating the combat power(cp) of a pokem ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
随机推荐
- 认识一下.net的架构设计
首先我们先逐步的了解一下.net都包含什么? 从层次结构上来看,公共语言运行时(CLR:Common Language Runtime).服务框架(Services Framework)和上层的两类应 ...
- Spring Boot-定义拦截器(七)
在web项目 我们常常使用拦截器做权限验证和登陆验证 1.创建一个拦截器实现类 标注@Componet @Component public class LoginInterceputer implem ...
- eclipse jvm调优
1.初始参数 -Xms256m-Xmx1024m 2.在eclipse.ini中加入,注意一点的是D:/soft/eclipse-jee,这个目录必须存在,启动时并不会自动目录 -verbose:gc ...
- Wireshark中的一些SNMP相关的过滤器
Wireshark中的一些SNMP相关的过滤器 转自 http://linmingren2003.blog.163.com/blog/static/567510032011419825097/ 由 ...
- 楼控-西门子insight BBMD设置
BBMD设置的目的就是让两个不同网段的设备可以同时在一个系统中访问的操作. 比如你有两个bacnet的网络,但是一个是192.168.0.1-192.168.0.255的网段,另一个是10.0.0.1 ...
- OpenStack开发基础-oslo.config
The cfg Module cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module能够用来通过命令行或者是配置文件来配置一些options,对 ...
- int*与(int*)的差别
晚上被问到一个C++的问题: int **pa=new int* [5]; int *pb=new (int*)[5]; 上面两行代码的差别是什么? 分析与实验结果例如以下: (1)第一行代码能够在V ...
- [iOS]UITableViewController完毕收回键盘操作
UITableViewController 本身可以实现键盘适配(cell中控件焦点会移动到键盘上方 在做键盘收回的时候思考过例如以下方案 1.tableview加入点击事件 结果:点击事件和tabl ...
- Linux正則表達式-定位元字符
有两个元字符用于指定字符串出如今行首或行末.脱字符(^)是指示開始的单字符正則表達式.美元符号($)是指示行结尾的单字符的正則表達式.这些通常称为"定位符",由于它们将匹配限定在特 ...
- UVA - 10061 How many zero's and how many digits ?
n!=x*b^y, 当x为正整数时,最大的y就是n!末尾0的个数了, 把n,b分别拆成素因子相乘的形式: 比如, n=5,b=16 n=5,b=2^4, 非常明显,末尾0的个数为0 10进制时,n!= ...