机器学习新手常犯的6大错误

241人已阅读 2018-08-22 11:29:29
导读 机器人学习,新手经常犯6大错误,下面就跟小编一起看看吧。
课程介绍

新闻详情

2018-08-22 11:29:29

机器学习新手常犯的6大错误

新闻介绍:

机器人学习,新手经常犯6大错误,下面就跟小编一起看看吧。

  理所当然地使用默认损失函数
  在刚入门的时候,均方误差作为损失函数是很好的默认选择。但是当需要处理现实问题的时候,这种未经专门设计的损失函数很少能给出最优解。
  拿欺诈检测为例。为了与你真正的商业目标一致,需要按照欺诈造成的损失美元金额的比例惩罚假负类。使用均方误差能给你一个还不错的结果,但不会是当前*的结果。
  要点:每一次都自定义损失函数,使之紧密匹配你的目标。
  对所有问题都使用一种算法/方法
  很多人一旦完成了入门教程之后,就开始在所有的案例中都使用同一种算法。这很常见,他们觉得这种算法的效果和其它算法是一样的。这种假设是很糟糕的,最终会带来很差的结果。
  解决办法是让数据为你选择模型。当你把数据预处理之后,将其馈送到多个不同的模型中去,看看结果如何。你将会了解哪些模型最适用,而哪些模型并不适合。
  要点:如果你一直使用同一种算法,这可能意味着你的结果并不是*的。
  忽略异常值
  异常值有时候很重要,有时候又可以忽略不计,视情况而定。以收入预测为例,有时候收入会突然出现很大的变动,观察这种现象并了解其原因是很有帮助的。有时候异常值由某种误差造成,那么这时可以放心地忽略它们,并将其从你的数据中删除。
  从模型的角度来看,有些模型对异常值更加敏感。以Adaboost为例,它会将异常值当做重要的例子,并给予异常值极大的权重,而决策树可能只是简单的把异常值当做一个错误分类(falseclassification)。
  要点:每一次开始*之前,先仔细观察数据,决定异常值是否应该被忽略,如果无法决定,就更仔细地观察。
  未正确处理周期特征
  一天24小时、一周七天、一年12个月,以及风向都是周期特征。很多机器学习新手工程师不知道把这些特征转换成表示能够保存信息,如23时和0时很接近。
  以小时为例,*处理方式是计算它的sin和cos,这样你可以将该周期特征表示为一个圆的(x,y)坐标。在以这种方式表示的时间中,23时和0时就是在数值上紧挨着的两个数,仅此而已。
  要点:如果你在研究中遇到周期特征,但没有将其转换成表示,那你就是在给模型添加垃圾数据。
  未经标准化的L1/L2正则化
  L1和L2正则化惩罚较大的系数,是一种对线性或logistic回归进行正则化的常用方式。但是,很多机器学习工程师没有意识到使用正则化之前对特征进行标准化的重要性。
  假设你有一个线性回归模型,其中一个特征是「交易金额」。如果交易金额的单位是美元,那么它的系数应该是单位为美分的系数的100倍。这可能会引起偏差,使模型惩罚实际较小的特征。为了避免该问题,需要将这些特征进行标准化,这样正则化对于所有特征都是平等的。
  要点:正则化很好用,但是如果你不把特征标准化,会出现很让人头疼的问题。
  把线性回归或logistic回归的系数绝对值当作判断特征重要性的依据
  很多现成的线性回归器为每个系数返回p值,一些机器学习新手工程师认为对于线性模型而言,系数的值越大,则该特征越重要。这并不准确,因为变量的大小会改变系数的绝对值。如果特征是共线的,则系数可以从一个特征转换到另一个特征。数据集的特征越多,特征是共线的可能性就越大,这种对特征重要性的简单解释的可信度就越低。
  要点:了解哪些特征对结果的影响力*非常重要,但是仅凭系数无法确定。
  做一些项目并且获得好的结果,感觉就像赢了一百万!你努力*,研究结果证明你做的不错,但是和任何行业一样,魔鬼总是隐藏在细节中,精密的图表也可能隐藏偏差和误差。
  本文列出的错误并不是全部,只是想刺激读者思考你的解决方案中可能隐藏哪些细微问题。要想获取好的结果,按照流程*很重要,并且仔细检查确保不犯常见错误。
上一篇: 新手Web设计师应该避免的6宗罪 下一篇: java程序员的5大职业发展方向

相关文章

推荐课程

查看全部课程
合肥海文国际教育

合肥海文国际教育

蜀山校区

查看全部校区 进入官方主页