很多学习机器学习的同学来参加数据挖掘比赛,发现数据挖掘比赛和自己学过的机器学习理论完全不一致.
所以,我决定写一篇入门文章给那些新人。
必须掌握的库scikit-learn scipy seaborn matplotlib pandas Hyperopt
特征分类:连续数字特征 序数特征 类别特征 时间特征 坐标特征 文本特征
序数特征:定义为无限循环有限个数字。 比如 某一列只有 1 2 3
类别特征:类别特征和序数特征相似 只不过表现形式是由字符来表示 比如某一列只由A B C表示
文本特征:定义为一句很长的字符,我们可以通过词袋模型或者word2vec进行处理
模型分类:
模型分为tree-based model和no-tree-based-model
tree-based-model 自带feature-scale的功能 所以标准化啥的意义不大
no-tree-based-model:神经网络 线性回归等.
1 数据挖掘比赛流程
第一步:看比赛介绍
第二步:读取数据 了解数据维度 是否有缺失值 了解特征的类别
第三步:整合训练集和测试集作为一个新的大集合:new_data
第四步:填充缺失值 具体方法可以通过特征之间的关系填充 随机森林预测等
第五步:数据清洗 删除重复行 检测异常值
第六步:找出新特征 这些需要通过特征的类别去专门的学习不同类别的特征处理的方法
比如(序数特征:你要考虑是否使用one-hot,类别特征你要先转化为序数特征,然后考虑特征是否具有分级性,比如手机A 手机B 手机C 那么这个序数特征就需要使用one-hot编码)
第七步:选择模型,调用自动调参方法,根据模型选择one-hot,是否标准化等
第八步:选择验证函数与验证方法 比如Auc 均方误差.不同的验证函数应用于不同的任务,这些也需要读者自己去探索,学习.
第九步:重复以上操作
可以使用的模型xgboost,lgb,随机森林等
知识只是避免我们走弯路,但是真正好的效果还是需要自己一步步探索.不要依赖知识,但是知识一定是不可缺少的一部分.