系列课程学习-机器学习解决问题综述
2017-03-28 16:56
344 查看
机器学习解决问题综述
1 应用领域
经济:股市、房价...
能源:产能预测、分配与合理利用
NLP相关:检索、分类、主题、相似度
互联网用户行为: CTR预测
销售预测:电商、连锁店、超市...
深度学习应用: 图像内容理解
推荐系统相关: 电商推荐
其他预测:气候、社交网络分析
2 常用算法
常见算法库:Sklearn/GBDT/xgboss
监督学习用的较多,无监督多作为辅助。
输入分为连续值和非连续值。
监督学学习中:
连续值:线性回归、决策树...
分类问题:
当数据分布较均匀时,朴素贝叶斯效果较好。
SVM多适用于中小数据集。
非监督学习:
SVD/PCA 降维
K-means 多为辅助使用,例如根据用户行为做聚类,发现不同的族群用户,然后作为训练集使用到监督式训练中。 [半监督学习]
如何选择算法:
1 看你的样本数据量,(如样本在百单位)数据量过少或维度很低,容易过拟合。如果数据量很少,则不一定要使用机器学习算法,可以尝试使用常规的统计算法或使用规则过滤。
2 分类问题->classification
样本量过大:随机梯度下降,SGD Classification
适中:SVM/LR.GBDT...
3 regression->预测问题
4 clustering ->无监督
5 reduction->维度过多时,降低维度。
3 常用工具
sklearn: 库很全、封装的很完善。
自然语言处理: gensim
绘图: matplotlib
pandas: 数据预处理
XGBoost:增强
深度学习: caffe keras
4 建模与问题解决流程
a了解场景、目标,了解评估准则,认识数据。
例如: 数据是否均衡,是否全面
b数据处理(清洗、调权)
清洗:丢掉不可信的样本数据/缺省值极多的字段考虑不用
数据采样: 下、上采样 /保证样本均衡
方法: 1 重复少的样本 2 权重赋值
3 加入 正负样本 10:100可以将100分类成10分。每份都与正样本进行一次运算,最后10个结果进行统计、投票。
工具: 数据适中的话,使用pandas,较大的时候使用 hive sql/spark sql
c特征工程
离散化: 比如对连续型的数据,商品价格分段
编码: 对分类型的数据,进行编码
缺省值: 缺的少,填充、缺的多,弃用、适中识别为新类型。
数据的转换: log 指数等,变化后可能会发现新的规律
d 模型选择/挑参
e 寻找最佳超参数:交叉验证
f 模型分析与模型融合
特征的类型:
对于时间可以使用时间段进行离散。 比如淘宝在双十一的数据,可以按小时分段。
可以拆分: 比如 吃饭点,拆成, 早上饭点,中午饭店
文本特征: 词频 ,权重 bag of words ,TF IDF; word2vec
统计型:如360你的开机速度超过了XXX人,将开机时间绝对值作为排行意义不大,而相对排行更有意义。
特征处理:
归一化: 将数值缩放到一定范围内。
课程提供特征工程PDF
http://scikit-learn.org/stable/modules/preprocessing.html
http://scikit-learn.org/stable/modules/classes.html#modulesklearn.
feature_extraction
特征选择:
http://scikit-learn.org/stable/modules/feature_selection.html
过滤型
Øsklearn.feature_selection.SelectKBest
包裹型
Øsklearn.feature_selection.RFE
嵌入型
Øfeature_selection.SelectFromModel
ØLinear model,L1正则化
过滤型用的较少,判断某一维度的特征与结果的关联度。
包裹型,对结果影响较小的特征,踢掉。
基于模型的....
模型选择:
sklearn cheetsheet提供的候选
o交叉验证(cross validation)
K折交叉验证(K-fold cross validation)
http://scikit-learn.org/stable/modules/cross_validation.html
模型的融合:
PS:实际工作当中,数据比模型重要,70%的时间用在数据的准备中。
参考博客:
http://blog.csdn.net/han_xiaoyang/article/details/50469334
http://blog.csdn.net/han_xiaoyang/article/details/52910022
思路:
拿到数据之后怎么了解数据(可视化 [不是所有的数据都可以做可视化])
选择贴切的机器学习算法
定位模型状态(过、欠拟合)及解决方法
过拟合之后的解决方法:最有效的是从数据角度解决,增加样本数据量。其次减小特征。
大量集的数据特征分析与可视化
各种损失函数的优缺点及选择
5 Kaggle Wiki
确定评判标准
6 简单案例讲解
1 应用领域
经济:股市、房价...
能源:产能预测、分配与合理利用
NLP相关:检索、分类、主题、相似度
互联网用户行为: CTR预测
销售预测:电商、连锁店、超市...
深度学习应用: 图像内容理解
推荐系统相关: 电商推荐
其他预测:气候、社交网络分析
2 常用算法
常见算法库:Sklearn/GBDT/xgboss
监督学习用的较多,无监督多作为辅助。
输入分为连续值和非连续值。
监督学学习中:
连续值:线性回归、决策树...
分类问题:
当数据分布较均匀时,朴素贝叶斯效果较好。
SVM多适用于中小数据集。
非监督学习:
SVD/PCA 降维
K-means 多为辅助使用,例如根据用户行为做聚类,发现不同的族群用户,然后作为训练集使用到监督式训练中。 [半监督学习]
如何选择算法:
1 看你的样本数据量,(如样本在百单位)数据量过少或维度很低,容易过拟合。如果数据量很少,则不一定要使用机器学习算法,可以尝试使用常规的统计算法或使用规则过滤。
2 分类问题->classification
样本量过大:随机梯度下降,SGD Classification
适中:SVM/LR.GBDT...
3 regression->预测问题
4 clustering ->无监督
5 reduction->维度过多时,降低维度。
3 常用工具
sklearn: 库很全、封装的很完善。
自然语言处理: gensim
绘图: matplotlib
pandas: 数据预处理
XGBoost:增强
深度学习: caffe keras
4 建模与问题解决流程
a了解场景、目标,了解评估准则,认识数据。
例如: 数据是否均衡,是否全面
b数据处理(清洗、调权)
清洗:丢掉不可信的样本数据/缺省值极多的字段考虑不用
数据采样: 下、上采样 /保证样本均衡
方法: 1 重复少的样本 2 权重赋值
3 加入 正负样本 10:100可以将100分类成10分。每份都与正样本进行一次运算,最后10个结果进行统计、投票。
工具: 数据适中的话,使用pandas,较大的时候使用 hive sql/spark sql
c特征工程
离散化: 比如对连续型的数据,商品价格分段
编码: 对分类型的数据,进行编码
缺省值: 缺的少,填充、缺的多,弃用、适中识别为新类型。
数据的转换: log 指数等,变化后可能会发现新的规律
d 模型选择/挑参
e 寻找最佳超参数:交叉验证
f 模型分析与模型融合
特征的类型:
对于时间可以使用时间段进行离散。 比如淘宝在双十一的数据,可以按小时分段。
可以拆分: 比如 吃饭点,拆成, 早上饭点,中午饭店
文本特征: 词频 ,权重 bag of words ,TF IDF; word2vec
统计型:如360你的开机速度超过了XXX人,将开机时间绝对值作为排行意义不大,而相对排行更有意义。
特征处理:
归一化: 将数值缩放到一定范围内。
课程提供特征工程PDF
http://scikit-learn.org/stable/modules/preprocessing.html
http://scikit-learn.org/stable/modules/classes.html#modulesklearn.
feature_extraction
特征选择:
http://scikit-learn.org/stable/modules/feature_selection.html
过滤型
Øsklearn.feature_selection.SelectKBest
包裹型
Øsklearn.feature_selection.RFE
嵌入型
Øfeature_selection.SelectFromModel
ØLinear model,L1正则化
过滤型用的较少,判断某一维度的特征与结果的关联度。
包裹型,对结果影响较小的特征,踢掉。
基于模型的....
模型选择:
sklearn cheetsheet提供的候选
o交叉验证(cross validation)
K折交叉验证(K-fold cross validation)
http://scikit-learn.org/stable/modules/cross_validation.html
模型的融合:
PS:实际工作当中,数据比模型重要,70%的时间用在数据的准备中。
参考博客:
http://blog.csdn.net/han_xiaoyang/article/details/50469334
http://blog.csdn.net/han_xiaoyang/article/details/52910022
思路:
拿到数据之后怎么了解数据(可视化 [不是所有的数据都可以做可视化])
选择贴切的机器学习算法
定位模型状态(过、欠拟合)及解决方法
过拟合之后的解决方法:最有效的是从数据角度解决,增加样本数据量。其次减小特征。
大量集的数据特征分析与可视化
各种损失函数的优缺点及选择
5 Kaggle Wiki
确定评判标准
6 简单案例讲解
相关文章推荐
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- supermap学习系列之silverlight--添加可拖拽的定位图钉(方法二之超图自带类(Pushpin、InfoWindow)) 续 解决上一篇的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- 加州理工学院公开课:机器学习与数据挖掘课程笔记(一)学习问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- Andrew NG机器学习课程笔记系列之——机器学习之神经网络模型-下(Neural Networks: Representation)
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- Stanford机器学习网络课程---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- (转)MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决
- Stanford机器学习课程笔记——LR的公式推导和过拟合问题解决方案
- 美团机器学习InAction系列—实例详解机器学习如何解决问题
- Hadoop 从零开始学习系列-旧版本hadoop工程升级新版本问题及解决
- MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决(转)
- MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题