1.认为使用默认损失函数是理所当然的
均方误差很大!在刚开始的时候,这确实是一个令人惊讶的默认值。但是当它涉及到实际应用时,这个现成的损失函数对于你想要解决的商业问题来说是最优的。
以欺诈检测(fraud detection)为例。为了与商业目标保持一致,你真正想要的是对虚假的负面信息与成比例的由于欺诈造成的美元数额损失进行惩罚。使用均方误差可能会给你带来一个好的结果,但是永远不会给出最佳结果。
重点:始终构建一个与解决方案目标紧密匹配的自定义损失函数。
4.未正确处理周期性特征
一天中的几个小时,一周的天数,一年中的几个月,以及风向的变化都是周期性的特征。许多机器学习初学者不知道将这些特征转换成能够保存信息的形式,例如,23时和0时之间的距离是接近的。
以小时为例,处理这一问题的最佳方法是计算sin和cos组件,这样就可以将周期性特征(x、y)表示为一个圆的坐标。在以这种方式表示的时间中,23时和0时只是在数字上相邻,仅此而已。
重点:如果你遇到周期性特征,而且你没有转换它们,那么你就会开始给你的模型带来垃圾数据。
5.未标准化的L1/L2正则化
L1和L2正则化对大系数进行惩罚是使线性或逻辑回归正则化的常用方法;然而,许多机器学习初学者并没有意识到,在应用正则化之前,标准化功能是很重要的。
假设你有一个带有“交易金额”特征的线性回归模型。在没有正则化的情况下,如果交易金额是美元,那么合适的系数将比它们在美分时的系数大100倍。这将导致偏差,并倾向于对规模较小的特征进行惩罚。为了避免问题,标准化所有的特征,并将它们放在同等的基础上,这样正则化就会在你的所有特征上都是一样的。
重点:正则化是很好的,但是如果没有标准化的特性就会带来不必要的麻烦。
6.把线性或逻辑回归中解释系数的绝对值作为重点特征的依据
许多现成的线性回归模型对每个系数都有一个p值,许多机器学习初学者认为,对于线性模型来说,系数越大,特征就越重要。由于变量的大小改变了系数的绝对值,这几乎是不可能的。如果这些特征是共线性的,系数就可以从一个特征转移到另一个。数据集的特性越多,它的特征就越有可能是共线性的,而对于特征重要性的简单解释则越不可靠。
重点:了解什么是最重要的特征是很有必要的,但是不要假设你可以查看这些系数。
这个6个错误并不是全部,只是为了让你去思考可能隐藏在你的解决方案中的所有小问题。为了取得好的结果,重要的是要遵循过程,并且要反复检查你是否在犯一些常见的错误。