下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

机器学习别犯这几个错误

作者:课课家教育     来源: http://www.kokojia.com点击数:832发布时间: 2017-11-07 10:29:01

标签: 正则化损失函数机器学习

  欢迎各位阅读本篇文章,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。本篇文章讲述了机器学习别犯这几个错误,课课家教育平台提醒各位:本篇文章纯干货~因此大家一定要认真阅读本篇文章哦!

  前言

  在工程中,有多种方法来构建一个关键值存储,并且每个设计都对使用模式做了不同的假设。在统计建模,有各种算法来建立一个分类,每一个算法的对数据集有不同的假设。

机器学习别犯这几个错误_正则化_损失函数_机器学习_课课家教育

  在处理少量的数据时,尽量多的去尝试更多的算法是合理的,并且去 选择最好的算法建立在实验成本低的情况下。但是,当我们碰到“大数据”时,就需要对数据进行前期分析,然后相应的设计建模流程。(例如预处理、建模、优化算法、评价,产品化)

  现在出现了很多的算法,而且有几十种方法来解决给定的建模问题。每个模型假设不同的东西,如何使用和验证哪些假设是否合理的其实并不明显。在工业中,大多数从业者选择的建模算法,都是他们最熟悉的,而不是选择一个最适合数据的。接下来,我来分享一些经常我们会忽略并犯错的地方,谢谢大家指正点评!( 注:标题就用英语,感觉更贴近机器学习算法的原意 )

  1. Take default loss function for granted(理所当然的采用默认损失函数)

  损失函数 是一个机器学习算法的核心,损失函数决定了最终优化后得到的参数以及模型本身。在不同的业务场景下,优化的目标应该是不同的。许多从业者训练和选择最好的模型,使用默认的损失函数(比如:均方误差)。在实践中,现成的损失函数很少与商业目标相一致。以诈骗侦查为例。当试图检测欺诈交易,商业目标是尽量减少欺诈损失。现有的二元分类器的损失函数同样衡量假阳性和假阴性。为了与商业目标一致,损失函数不仅要惩罚假阴性多于假阳性, 但也惩罚每个假阴性与美元金额的比例。

  此外,数据集在欺诈检测通常包含高度不平衡的标签。在这种情况下,偏置的损失函数有利于罕见的情况下(例如:通过上/下采样)。

  2. Use plain linear models for non-linear interaction(纯线性模型用于非线性相互作用)

  这个同样是经常会犯的错误。当构造一个二分类问题,很多人就会直接想到Logistic回归, 原因很简单,因为逻辑回归效率高,实现容易。但是,大家往往都忽略了一点,逻辑回归本身就是一个线性模型,且非线性相互作用之间的预测需要手动编码。但是,真实数据是否线性可分却是我们未知的情况。由于高维数据下判断数据是否线性可分几乎是一个不现实的任务,所以个人的经验往往是先使用逻辑回归做一次分类,但是同时也会采用决策树,或者SVM等非线性模型来对该数据进行重新的分类比对。

  返回欺诈检测,高阶交互特征如:“账单地址=发货地址和交易金额 < $50”需要良好的模型性能。因此,人们应该喜欢非线性模型,如SVM核函数或基于树的分类,有益于高阶交互特征。

  3. Forget about outliers(忽略异常值)

  异常值是个很有趣的事情,让你又爱又恨。根据上下文,他们要么值得特别关注,要么完全忽略。以收入预测为例。如果观察到不同寻常的收入高峰,这可能是一个好主意,要格外注意他们,找出什么原因引起的尖峰。但如果异常是由于机械误差,测量误差或其他造成则不适用,在将数据反馈到建模算法之前,滤除这些异常值是个好主意。

  有些模型比其他更敏感异常值。例如,AdaBoost可以把这些异常值作为“难样本(Hard)”的情况下,把较大的权重放在异常值,而决策树可以简单地计算每个异常值作为一个错误分类。如果数据集包含了大量的异常值,着重的是,要么用鲁棒的模型算法去针对异常值,要么滤除异常值。

  注:参考他人一段话。

  我记得之前在统计之都上看过一篇文章对我启发很大,说曾经我们都愿意把异常值直接给丢掉,但是我们却忘记了异常值并非错误值,而同样是真实情况的表现,我们之所以认为异常,只是因为我们的数据量不足够大而已。文中还举了一个例子,说我们用计算机来模拟高斯分布,也一样会模拟出一些数据点落在N个标准差之外,而我们并不能说这是异常点,因为如果我们把这些点删除掉,这就不是一个高斯分布了。所以异常值很多情况下非但不能丢掉,还需要引起我们的足够重视和分析。

所以异常值很多情况下非但不能丢掉,还需要引起我们的足够重视和分析。

  但是我们又要注意这个异常值是否是错误值,如果是错误值,这个时候我们就应该想办法把这些错误值去掉,因为这些错误往往会影响我们实际的模型效果。如果当训练数据中包含一些异常值的时候,我们就需要考虑模型的敏感性了,例如AdaBoost, Kmeans这种就属于对异常值很敏感的机器学习模型。

  4. Use high variance model when n<<p(高方差模型使用情况)< p="">

  支持向量机是最流行的现有建模算法之一,其最强大的功能之一是能够适应不同核函数的模型。SVM核函数可以被认为是一种方法,自动结合现有的特征去 形成一个更丰富的特征空间。由于这个简单,大多数都会在训练SVM模型的时候默认使用核函数。然而,当数 据n<<p(样本数目 p="" 特征数目),常见于医疗数据等行业,更丰富的特征空间意味着有更高的风险过拟合数据。事实上,高方差模型应完全避免(n<<p)。<="" <<="">

  注: SVM核函数的一个关键概念就是维度提升,如果当n << p的时候,还依然采用SVM来选定模型,那么就必然会导致p进一步增加,于是导致特征的参数中自由变量增加,必然会对分类的效果产生很大的影响。

  5. L1/L2/… regularization without standardization(正则化前没有标准化)

  应用 L1或L2去惩罚 较大系数是常用的方式去正则化线性或逻辑回归。然而,许多人不知道应用这些正则化之前特征标准化的重要性。

  返回欺诈检测,想象一个具有交易量特征的线性回归模型。没有正则化,如果交易金额单位为美元,拟合系数将是约100倍大于 如果该单位是美分的 拟合系数。有正则化,由于L1 / L2惩罚更大的系数, 如果单位是美元 交易金额将受到惩罚。因此,正规化是有偏见的,往往倾向于惩罚小规模特征。为了缓解这个问题,标准化的所有特征,并把它们作为一个预处理步骤。

  6. Use linear model without considering multi-collinear predictors(使用线性模型没有考虑共线预测)

  设想建立一个具有两个变量X1和X2的线性模型,假设真实模型是y = X1+X2。理想情况下,如果观察到的数据有少量的噪声,线性回归解将找回真实模型。然而,如果X1和X2共线,大多数优化算法的关系,y=2*X1, y=3*X1-X2或y=100*X1-99*X2都是不错的。

  这个问题可能不是有害的,因为它没有偏差估计。然而,它确实会使问题成为病态,并且使系数权重无法解释。

  7. Interpreting absolute value of coefficients from linear or logistic regression as feature importance

  因为许多现有的线性回归返回的p-value

  系数的P值返回每个,

  许多人认为线性模型,系数的绝对值越大,对应的特征越重要。这很少是真实的,因为:

  改变了变量的规模,就改变了系数说的绝对值;

  如果特征是共线的,系数可以从一个特征转移到其他。

  此外,数据集有更多的特征,有更多的可能特征共线,用系数解释特征重要性的可靠性较差。

  机器学习:

  学习能力是智能行为的一个非常重要的特征,但至今对学习的机理尚不清楚。人们曾对机器学习给出各种定义。H.A.Simon认为,学习是系统所作的适应性变化,使得系统在下一次完成同样或类似的任务时更为有效。R.s.Michalski认为,学习是构造或修改对于所经历事物的表示。从事专家系统研制的人们则认为学习是知识的获取。这些观点各有侧重,第一种观点强调学习的外部行为效果,第二种则强调学习的内部过程,而第三种主要是从知识工程的实用性角度出发的。

  机器学习在人工智能的研究中具有十分重要的地位。一个不具有学习能力的智能系统难以称得上是一个真正的智能系统,但是以往的智能系统都普遍缺少学习的能力。例如,它们遇到错误时不能自我校正;不会通过经验改善自身的性能;不会自动获取和发现所需要的知识。

  它们的推理仅限于演绎而缺少归纳,因此至多只能够证明已存在事实、定理,而不能发现新的定理、定律和规则等。随着人工智能的深入发展,这些局限性表现得愈加突出。正是在这种情形下,机器学习逐渐成为人工智能研究的核心之一。它的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。其中尤其典型的是专家系统中的知识获取瓶颈问题,人们一直在努力试图采用机器学习的方法加以克服。

  机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。这些研究目标相互影响相互促进。

  自从1980年在卡内基梅隆大学召开第一届机器学习研讨会以来,机器学习的研究工作发展很快,已成为中心课题之一。随着机器学习的蓬勃发展,人们在工作中累积了大量可供测试算法的数据集或者超大数据集,机器学习工作者在此基础上可以进行更精准的研究,例如ICCV2011年马尔奖:相对属性的数据;AOL-user-ct-collection数据集;科雷尔图片特征数据集(UCI);植被型数据集(UCI)等等。

机器学习的研究工作发展很快,已成为中心课题之一。

  小结:它的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。其中尤其典型的是专家系统中的知识获取瓶颈问题,人们一直在努力试图采用机器学习的方法加以克服。不妨关注课课家教育平台,在这里你肯定会有意想不到的收获的!

赞(13)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程