1. sklearn简介
- Python语言的编程工具
- 基于Numpy,Scipy和matplotlib构建
- 开源,BSD许可
sklearn官网:(http://scikit-learn.org/)学习中可经常查阅API等信息,官网提供的文档和例子也十分详尽.
2 sklearn的使用流程
数据收集 -> 特征工程(数据清洗,特征选择,降维) -> 模型训练(选择模型)
->模型测试 -> 部署上线
3 sklearn覆盖的机器学习问题
- 分类 Classification
- 回归 Regression
- 聚类 Clustering
- 降维 Dimensionality reduction
- 模型选择 Model_selection\
- 预处理 Preprocessing
4 Estinator评估器, Transformer转换器 Pipeline管道
评估器 Estimator : 训练模型的武器,如分类器Classifier,回归器Regressor都属于评估器Estimator
核心函数:- fit(X_train, y_train) : 用于训练模型
- predict(X-test) : 用于对测试集预测
转换器 Transformer : 用于数据预处理的武器
核心函数:- fit(x_train) : 用于训练转换器参数
- transform(X_test) : 用于对测试集转换数据
- 流水线 Pipeline
典型的机器学习流程:
datasets — transformer1 — transformer2 — transform3 … transformern — Estinator
fit方法是通过训练(计算)获取相关的参数并保存, 之后可以多次使用transform方法对数据进行转换
transform方法 一个任务集可以有多个transformer
Estinator 一个任务只能有一个 并且一定是在最后用 fit方法训练也是得到一组参数,然后可以进行多次predict预测
pipeline管道就是把多个transformer和一个estimator包装起来,形成一个整体
pipeline运行机制如下:
5 Pipeline使用实例
泰坦尼克号案例
# 导入相关包
import pandas as pd
# 读取数据
titanic_df = pd.read_csv('./datasets/titanic/train.csv')
# drop 掉 PassengerId,Name,Ticket,Cabin
titanic_df = titanic_df.drop(['PassengerId','Name','Ticket','Cabin'], axis = 1)
# 构造一个新变量 AgeIsMissing
titanic_df['AgeIsMissing'] = 0
titanic_df.loc[titanic_df['Age'].isnull(), 'AgeIsMissing'] = 1
# 对 Age 缺失值进行均值填充
age_mean = round(titanic_df['Age'].mean())
titanic_df['Age'].fillna(age_mean, inplace=True)
# 对 Embarked 缺失值用'S'替换
titanic_df['Embarked'].fillna('S', inplace=True)
# 对 Age 进行分箱--自定义分箱