在特征构造之前,通常要先进行数据清洗。https://blog.csdn.net/u014281392/article/details/81224824 这个网页展示了如何对csv数据进行清洗,主要是处理异常值。这个网页同时也展示了特征的构造,讲的比较详细,虽然是金融上的数据。
数据决定了模型预测的上限,而算法只是在逼近这个极限而已。这里的数据指的就是经过特征工程所得到的数据。机器学习的核心就是特征构造。好的数据是从原始数据抽取出来对预测结果最有用的信息。好的特征应该做到少而精。特征工程就是指把原始数据转变为模型训练数据的过程。一般认为特征工程包括特征构建、特征提取、特征选择三部分。
特征构造需要一定的经验,特征提取强调通过特征转换得到一组特征,而特征选择是从特征集合中挑选一组特征作为特征子集。两者都能帮助减少数据冗余和特征维度。特征提取有时能发现更有意义的特征属性,特征选择的过程经常能表示出每个特征的重要性对于模型构建的重要性。属性分割和结合是特征构建时常使用的方法。结构性的表格数据,可以尝试组合二个、三个不同的属性构造新的特征。如果存在时间相关属性,可以划出不同的时间窗口,得到同一属性在不同时间下的特征值。总之特征构建是个非常麻烦的问题,书里面也很少提到具体的方法,需要对问题有比较深入的理解。
特征选择是剔除不相关或者冗余的特征,减少有效特征的个数,减少模型训练的时间,提高模型的精确度。有时可能自己认为特征选择做的很好,但实际中模型训练并不太好,所以每次特征选择都要使用模型去验证。
特征构建是指从原始数据中人工的找出一些具有物理意义的特征。需要花时间去观察原始数据,思考问题的潜在形式和数据结构,对数据敏感性和机器学习实战经验能帮助特征构建。
设计特征时,应该考虑三个问题。一,这个特征是否对目标有用?二,如果有用,这个特征重要性如何?三,这个特征的信息是否在其他特征上体现过?所以特征设计需要领域知识、直觉和数学知识。特征设计和提取需要反复的迭代验证,需要大量时间。
网友评论