preprocessing
缺失值的处理
简单的preprocessing直接用pandas,类似
Imputer
建立一个处理缺失值的模型
- impnum,missing_values定义什么是缺失值
- strategy定义用什么方式处理缺失值"mean",“median”,“most_frequent”
- axis行或列
- copy是在原数据上进行操作还是copy一份
fit_transform(x)
这个函数就是先fit,再transform
几乎所有的模型运用在dataSet上都是这样
数据归一化
StandardScaler()
数据标准化
MinMaxScaler()
min_max处理
正则化
数据划分
model_selection.train_test_split
- test_size是test的比例,random_state是随机种子
调参
sklearn.model_selection.GridSearchCV
Parameters
- estimator:所使用的分类器,或者pipeline
- param_grid:值为字典或者列表,即需要最优化的参数的取值
- scoring:准确度评价标准,默认None,这时需要使用score函数;或者如scoring=‘roc_auc’,根据所选模型不同,评价准则不同。字符串(函数名),或是可调用对象,需要其函数签名形如:scorer(estimator, X, y);如果是None,则使用estimator的误差估计函数。
- | ‘accuracy’ | metrics.accuracy_score |
| ------------------- | ------------------------------------------------------------ |
| ‘average_precision’ | metrics.average_precision_score |
| ‘f1’ | metrics.f1_score |
| ‘f1_micro’ | metrics.f1_score |
| ‘f1_macro’ | metrics.f1_score |
| ‘f1_weighted’ | metrics.f1_score |
| ‘f1_samples’ | metrics.f1_score |
| ‘neg_log_loss’ | metrics.log_loss |
| ‘precision’ etc. | metrics.precision_score |
| ‘recall’ etc. | metrics.recall_score |
| ‘roc_auc’ | metrics.roc_auc_score |
- 回归情况:
‘neg_mean_absolute_error’ | |
‘neg_mean_squared_error’ | |
‘neg_median_absolute_error’ | |
‘r2’ |
- n_jobs:并行数,int:个数,-1:跟CPU核数一致, 1:默认值。
- pre_dispatch:指定总共分发的并行任务数。当n_jobs大于1时,数据将在每个运行点进行复制,这可能导致OOM,而设置pre_dispatch参数,则可以预先划分总共的job数量,使数据最多被复制pre_dispatch次
- iid:默认True,为True时,默认为各个样本fold概率分布一致,误差估计为所有样本之和,而非各个fold的平均。
- cv:交叉验证参数,默认None,使用三折交叉验证。指定fold数量,默认为3,也可以是yield训练/测试数据的生成器。
- refit:默认为True,程序将会以交叉验证训练集得到的最佳参数,重新对所有可用的训练集与开发集进行,作为最终用于性能评估的最佳模型参数。即在搜索参数结束后,用最佳参数结果再次fit一遍全部数据集。
- verbose:日志冗长度,int:冗长度,0:不输出训练过程,1:偶尔输出,>1:对每个子模型都输出。
Attributes:
best_estimator_:效果最好的分类器
best_score_:成员提供优化过程期间观察到的最好的评分
best_params_:描述了已取得最佳结果的参数的组合
best_index_:对应于最佳候选参数设置的索引(cv_results_数组的索引)。