大师兄的数据分析学习笔记(十三):特征预处理(四)
大师兄的数据分析学习笔记(十五):分类模型(一)
一、基础概念
- 学习:通过接收到的数据,归纳提取相同与不同。
- 机器学习:让计算机以数据为基础,进行归纳与总结。
- 模型:数据解释现象的系统,可以看做是机器学习产出的函数。
二、关于机器学习
- 机器学习根据是否有标注,可以分为监督学习、非监督学习和半监督学习。
- 机器学习的任务,就是提炼出输入数据与标注间的关系,并进行预测。
1. 监督学习
- 监督学习就是有标注的机器学习过程,标注告诉模型在怎样的特征下,应该输出怎样的结果。
- 根据标注时离散值还是连续值,监督学习可以分为分类学习和回归学习。
标注是离散值:分类学习
标注是连续值:回归学习
2. 非监督学习
- 如果机器学习的过程没有标注,叫做非监督学习。
- 非监督学习完全让数据自己说话,将数据的特征在不同的模型中进行不同的表现。
- 非监督学习经常分为聚类分析和关联分析。
3. 半监督学习
- 如果机器学习的过程部分有标注,叫做半监督学习。
- 半监督学习中,有标注的数据可以作用于没有标注的数据,规范和引导聚类和关联的方向。
- 同时,没有标注的数据也可以作用于有标注的数据,时刻获得模型对数据的影响和反馈。
三、关于数据集
- 在建模前,通常会将数据集分成三个部分:训练集、验证集和测试集,这种方法也叫作交叉验证。
- 这三部分数据集的比例通常取:6:2:2。
- 如果只将数据分为训练集和测试集,比例通常取4:1。
1. 训练集
- 训练集是用来训练与拟合模型。
- 模型的参数由训练集决定。
- 训练集的数据越多,模型相对于整个数据集越准确。
2. 验证集
- 验证集是用于验证训练集训练出的模型,进行数据纠偏或比例预测,从多个模型中选出最优模型。
3. 测试集
- 测试集用于模型泛化能力的考量,通过验证集得出最优模型后,对模型进行预测,衡量模型的性能和分类能力。
- 泛化能力指的是对未知数据或实际场景数据的预测能力。
- 如果数据集在训练集和验证集数据表现良好,但在测试集数据中表现较差,这种现象称为过拟合现象。
4. 分类方法
- 为了全面衡量模型的质量,数据集的分类选取通常是随机的。
- 有时为了更全面的考察模型,会使用K-fold叉验证:
- 将数据集分成k份,每份轮流做一遍测试集,其它作训练集。
>>>import os
>>>import pandas as pd
>>>from sklearn.model_selection import train_test_split
>>>df = pd.read_csv(os.path.join(".", "data", "WA_Fn-UseC_-HR-Employee-Attrition.csv"))
>>>X_tt,X_validation = train_test_split(df,test_size=0.2)
>>>X_train,X_test = train_test_split(X_tt,test_size=0.25)
>>>print(f"X_train:{len(X_train)}")
>>>print(f"X_validation:{len(X_validation)}")
>>>print(f"X_test:{len(X_test)}")
X_train:882
X_validation:294
X_test:294