概述
定义
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。
数据集构成
特征值 + 目标值
理解:
- 特征值是对于目标的描述
- 目标值是要预测的数据
特殊数据集可以没有目标值
理解:按照特征对数据集进行归类而已。
算法分类
监督学习
目标值:类别——分类问题
比如对猫狗图片进行区分。
目标值:连续型数据——回归问题
比如根据房屋特征对房屋价格进行预测,价格是连续性的。
无监督学习
目标值:无——无监督学习
机器学习开发流程
- 获取数据
- 数据处理
- 特征工程
- 机器学习算法进行训练 -> 模型
- 模型评估
数据集获取
常用网站
- 大数据竞赛平台
- 80万科学家
- 真实数据
- 数据量巨大
- 收录了360个数据集
- 覆盖科学、生活、经济等领域
- 数据量几十万
- 数据量较小
- 方便学习
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 全选
- 获取大规模数据集,需要从网络上下载,data_home为下载的目录 ,subset为训练集的类型
数据集获取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 训练集特征值,测试集特征值,训练集目标值,测试集目标值