机器学习简介¶
监督式机器学习:为模型提供特征和目标变量,然后模型会计算出如何使用这些特征达成目标。
分类¶
- 回归:数值,例如价格或者温度
- 分类:二元分类-多元分类
- 排名:一组元素的排序
步骤¶
1. 问题理解¶
确定问题,理解问题,选择解决方案
2. 数据理解¶
分析可用数据集并决定是否收集数据。问题:1. 数据集太小;2.过于嘈杂
3. 数据准备¶
把数据转换为可用作模型输入的表格形式
4. 建模¶
5. 评估¶
训练数据集-验证数据集-模型数据集
6. 部署¶
下文中,你将学到:¶
线性回归-汽车价格预测¶
- 读取
- 数据处理: 所有列名小写并用下划线代替空格 所有字符串列的值用下划线替换空格并且小写化(只选择带有字符串值的列)
- 目标变量分析: 可视化显示数据分布 出现长尾分布,采用LOG
- 缺失值检查: 用0填充
- 数据准备: 分类变量- ONE HOT编码 拆分-训练集、验证集、检查集 准备好X_…,Y_……(选取特征)
- 线性回归: 数学公式代入 正则化-控制权重
- 预测
- 检查:RMSE评估模型
分类-逻辑回归-客户流失预测¶
- 读取
- 数据处理: 「缺失值」查看变量类型-发现数字是文本-猜测导致原因是有空白 「缺失值」文本列转化为数字类型,并检查缺失值以验证猜想 「缺失值」用0填充缺失值 所有列名小写并用下划线代替空格 「没必要随便」目标变量数字化(“yes”->1,而非"1"->1) 拆分-训练集、验证集、检查集
- 初步数据分析: 检查缺失值 计算流失率 分别存储分类特征与数值特征的列名 查看分类变量有多少唯一值
- 特征重要性分析: 流失率-数值差越大越好 风险率-求比值 相关系数
- 特征工程 用DictVectorizer统一调用One-Hot
- 模型: 直接用LogisticRegression
- 预测
- 检查
分类-决策树/集成学习-信用风险评估¶
- 数据处理 用字符意义替换数值表示(为了直观理解?) 缺失值替换1(原数据中表示为99999999) 删除未知结果的数据 拆分-训练集、验证集、检查集 缺失值替换2(原数据中表示为NaN) 使用One-HOT
法一:决策树¶
- 模型 DecisionTreeClassifier
- 评估 AUC
法二:随机森林¶
- 模型 RandomForestClassifier
- 评估 AUC
法三:XGBoost梯度提升¶
数据封装 XGBoost预设 PS:性能监控预设
图分类-神经网络/迁移学习-服装¶
- 数据加载 (已提前处理好训练集和验证集) 用preprocess_input预处理 设定加载模式-图像大小、每次加载数量
- 创建模型 (迁移学习)基础模型-预训练、去掉顶层、输入数据尺寸 冻结基础模型-无须后续再训 构建模型-输入、基模、池化层、(隐藏层、)致密层(输出)
- 训练模型 参数:学习率、优化器、损失函数 模型加载-compile 模型训练-fit
- 其它操作 保存模型-设置检查点 dropout正则化