机器学习流程与方法
问题建模 |
---|
特征工程 |
模型选择 |
模型融合 |
模型上线应用 |
问题建模 |
---|
1、必须清楚,我的评估指标是什么? |
2. 选择样本集合 |
3.交叉验证 |
- 评估指标有哪些?
- P ,R ,PRC,ROC&AUC ,LOSS,mAP
- 如何选择样本子集?
- 分层采样
- 如何交叉验证?
- k-fold
特征工程 |
---|
1.EDA |
2. 数据清洗(缺失值,异常值)和归一化,连续数据离散化(分桶) |
3. 特征选择 |
- 特征工程首先对数据进行EDA(探索性数据分析)
- 了解数据集 大致信息,缺失值比例,特征的类型
- 箱型图,直方图,茎叶图,相关性矩阵热度图,PCA降维等
- EDA之后,对数据有了解了,还要对 数据 进行 清洗筛选。
- 数据缺失值
- 数据异常值
- 区分特征种类:
- 数值特征
- 连续特征
- 归一化
- 离散化
- 分桶
- 离散特征
- 连续特征
- 类别特征
- 编码
- 独热编码
- 计数排名编码
- (对线性和非线性都有效)
- (异常值不敏感)
- (特征取值不会冲突,排名不冲突)
- 自然编码
- 分层编码
- 邮政编码,身份证号
- 编码
- 时间特征
- 年月日
- 时分秒
- 周日制
- 是否周末、是否月末、是否季度末、是否是营业时间、是否节假日等
- 距离上次…时间间隔
- 空间特征
- GPS坐标
- 国家ID,城市ID,行政区ID、街道ID等
- 空间距离
- 文本特征
- 正则化
- 字母数字统一为一种语言的字母数字
- 语料构建
- 文档: 物品的描述
- 文本清洗
- 去掉空格,标点符号等
- 分词
- 词性标注
- 动词
- 名词
- 形容词
- 词意还原
- 能表达语义
- 3-Gram 模型
- 转化文本为连续序列,连续三个单词构成一句话:
- ABCDE => (ABC, BCD CDE)
- 转化文本为连续序列,连续三个单词构成一句话:
- Skip-Gram模型
- 词袋模型
- 首先构成一个向量
- 向量的每个分量表示,单词在文档中出现的词频TF
- TF-IDF
- 首先把所有文档,构成词汇表(词典)
- 对于某个文档, 对词典中的key形成一个向量,向量的值为tf*idf
- tf 是局部参数,表示 单词在文本d中出现的词频
- idf 是全局参数, 为log(总文档数目/ 出现过这个单词的文档数)
- 词袋模型
- 词性标注
- 正则化
- 数值特征
- 特征选择: 选择对口的特征组合
- 如何衡量特征的好坏?
- 目标标签标量 和 特征的 距离/相似度
- 距离和相似度 指标
- L-p norm 距离(长度)
- 余弦相似度(cos)(角度)
- 皮尔逊相关系数(综合)
- Jaccard相似度(集合交集数目/集合并集数目)
- Jaccard距离 = 1- Jaccard相似度
- Fisher得分
- 互信息KL(p(x,y) ||p(x)p(y))
- 假设检验
- CFS 相关性特征选择
- 特征选择的三大类方法:(按照 特征选择时候是否与机器学习算法互动)
- 过滤方法
- 特征全集 => 特征选择 => 机器学习算法 => 模型效果
- 特征选择和机器学习算法是不会互动的,是独立的。因此简单有效。
- 单变量过滤
- 只考虑相关性,根据相关性排序,过滤掉 最不相关的特征
- 多变量过滤
- 不仅考虑相关性,还考虑一致性?
- CFS 相关特征选择,包含了交叉特征的相关性
- MBF
- FCBF
- 不仅考虑相关性,还考虑一致性?
- 特征全集 => 特征选择 => 机器学习算法 => 模型效果
- 封装方法
- 特征全集 => |特征选择 <=> 机器学习算法| => 模型效果
- 对于可能的特征子集,考虑机器学习算法的适合性,用算法,验证集 来选择效果最好的特征子集。
- 嵌入方法
- 特征全集 =>| 特征选择 <=> 机器学习算法 + 模型效果|
- 直接融合 特征选择和机器学习算法,同时评价效果
- 需要交叉验证
- 决策树,随机森林,梯度提升树,SVM, Lasso
- 过滤方法
- 如何衡量特征的好坏?