Python 机器学习过程小结
来源:互联网 发布:mac jenkins 配置文件 编辑:程序博客网 时间:2024/06/05 20:03
如何做出一个好的Machine Learning模型
转载自知乎专栏
Data Cleaning
- 移除多余的duplicate features(相同或极为相似的features)
- 移除constant features(只有一个value的feature)
移除方差过小的features(方差过小意味着提供信息很有限)
#Python里可以使用sklearn包里的VarianceThreshold()函数>>> from sklearn.feature_selection import VarianceThreshold>>> X = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]>>> selector = VarianceThreshold()>>> selector.fit_transform(X)array([[2, 0], [1, 4], [1, 1]])#参数:threshold : float, optional#特征的方差低于这个值时,这个特征会被删除。默认情况是排除方差为0,即该特征在所有样本中取值相同的情况。
缺失值处理:将missing value重新编为一类。
#比如原本-1代表negative,1代表positive,那么missing value就可以全部标记为0#对于多分类的features做法也类似二分类的做法#对于numeric values,可以用很大或很小的值代表missing value比如-99999.
填补缺失值
#Python用sklearn中的Imputer()函数,用mean(平均数),median(中位数)或者most frequent value进行填补>>> import numpy as np>>> from sklearn.preprocessing import Imputer>>> imp = Imputer(missing_values='NaN', strategy='mean', axis=0)>>> imp.fit([[1, 2], [np.nan, 3], [7, 6]])Imputer(axis=0, copy=True, missing_values='NaN', strategy='mean', verbose=0)>>> X = [[np.nan, 2], [6, np.nan], [7, 6]]>>> print(imp.transform(X)) [[ 4. 2. ][ 6. 3.666...][ 7. 6. ]]
上述代码使用数组X去“训练”一个Imputer类,然后用该类的对象去处理数组Y中的缺失值,缺失值的处理方式是使用X中的均值(axis=0表示按列进行)代替Y中的缺失值。
高级的缺失值填补方法
#利用其他column的features来填补这个column的缺失值(比如做回归)#数值数据众数填补,0-1数据依据出现的概率随机填补
Features Engineering
- Data Transformation
a. Scaling and Standardization
数据标准化是为了消除量纲影响和变量自身变异大小和数值大小的影响,而基于树的模型是不需要这一步的。
Python用StandardScaler()>>> from sklearn import preprocessing>>> import numpy as np>>> X = np.array([[ 1., -1., 2.],... [ 2., 0., 0.],... [ 0., 1., -1.]])>>> X_scaled = preprocessing.scale(X)>>> X_scaled array([[ 0. ..., -1.22..., 1.33...], [ 1.22..., 0. ..., -0.26...], [-1.22..., 1.22..., -1.06...]])>>>#处理后数据的均值和方差>>> X_scaled.mean(axis=0)array([ 0., 0., 0.])>>> X_scaled.std(axis=0)array([ 1., 1., 1.])
b. Responses Transformation当数据展现偏态分布时候用,使得数据接近正态分布可以用log(x),log(x+1),sqrt(x)等
2. Features Encoding
将类别特征转换为数值特征,Python 用 LabelEncoder()。
3. Features Extraction
适当增加一些能够较好反应样本信息的特征,比如缺失值个数,数值特征的平均数和方差等
4. Features Selection
a.这个方法很多
注:其中randomForest以及xgboost里的方法可以判断features的Importance
b. 此外,PCA等方法可以生成指定数量的新features(映射)
c. 对features进行visualization或correlation的分析,好的特征集合与分类结果联系密切,而彼此之间并没有太大联系。
Models Trainning
1.广泛尝试各类模型
2. 利用Grid Search进行hyper参数的选择
3. 利用Cross-Validation衡量训练效果
4. Ensemble Learning Methods
0 0
- Python 机器学习过程小结
- python机器学习简易过程
- 机器学习--对1-8课学习过程的小结
- 【机器学习】高斯过程python包安装过程
- 机器学习小结
- 机器学习基础小结
- 《机器学习实战》小结
- 机器学习算法小结
- 机器学习术语小结
- 机器学习小结
- 机器学习完整过程案例分布解析,python代码解析
- 机器学习完整过程案例分布解析,python代码解析
- 机器学习完整过程案例分布解析,python代码解析
- 机器学习过程
- 机器学习经典书籍小结
- 机器学习经典书籍小结
- 机器学习经典书籍小结
- 机器学习经典书籍小结
- NYOJ--19--next_permutation()--擅长排列的小明
- jqgrid清楚单元格内容
- 58同城 iOS客户端组件化演变历程---公司也正朝着这个方向努力
- Linux curl命令详解
- Set up the Virtual switch and Virtual adapter in Windows 2012R2
- Python 机器学习过程小结
- Java7里try-with-resources分析
- $.param()
- Vue.js做todo日常事务任务列表
- Mybatis parameterType 与 resultMap
- oracle 获取自增主键--mybatsi
- ubuntu 查看内存插槽数最大容量和频率
- 详解Laravel依赖注入(DI)和Ioc容器
- eclipse 反编译插件安装步骤