概述

定义

  机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。

数据集构成

特征值 + 目标值

理解:

  • 特征值是对于目标的描述
  • 目标值是要预测的数据

特殊数据集可以没有目标值

理解:按照特征对数据集进行归类而已。



算法分类

监督学习

 目标值:类别——分类问题

比如对猫狗图片进行区分。

 目标值:连续型数据——回归问题

比如根据房屋特征对房屋价格进行预测,价格是连续性的。

无监督学习

 目标值:无——无监督学习



机器学习开发流程

  1. 获取数据
  2. 数据处理
  3. 特征工程
  4. 机器学习算法进行训练 -> 模型
  5. 模型评估

数据集获取

常用网站

Kaggle

  1. 大数据竞赛平台
  2. 80万科学家
  3. 真实数据
  4. 数据量巨大

UCI

  1. 收录了360个数据集
  2. 覆盖科学、生活、经济等领域
  3. 数据量几十万

scikit-learn

  1. 数据量较小
  2. 方便学习


Scikit-learn 工具

内容

  • Classification 分类
  • Regression 回归
  • Clustering 聚类
  • Dimensionality reduction 降维
  • Model selection 模型选择
  • Preprocessing 特征工程

API

内置数据集获取

  • sklearn.datasets
    • 加载获取流行数据集
    • datasets.load_*()
      • * 表示可选的标识符
      • 获取小规模数据集,数据包含在 datasets 里
    • datasets.fetch_*(data_home=None,subset=‘train’)
      • 获取大规模数据集,需要从网络上下载,data_home为下载的目录 ,subset为训练集的类型
        • train 为训练集、test 为测试集、all 全选

数据集获取API的返回值

  • 是继承自字典的 Bunch 类,含有这些键值对
    • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
    • target:标签数组,是 n_sample 的一维 numpy.ndarray 数组
    • DESCR:数据描述
    • feature_names:特征名,新闻数据,手写数字、回归数据集没有
    • target_names:标签名

训练集划分

  • 训练集一般为 70%-80%
  • 训练集划分API:
def train_test_split(
    *arrays,# 数据集的特征值和目标值
    test_size=None,# 测试集的大小
    train_size=None,
    random_state=None,# 随机数种子,造成不同的采样结果
    shuffle=True,
    stratify=None,
):

return 训练集特征值,测试集特征值,训练集目标值,测试集目标值
12-09 06:57