终于进入机器学习了!
机器学习的主要方法:
- 监督式机器学习
- 无监督式机器学习
- 强化学习
学习方法
- 基于模型——通过对训练数据进行学习和分析,构建一个明确的模型来描述数据的内在规律和模式。然后,利用这个模型对新的数据进行预测和分类。
- 基于实例——并不显式地构建一个模型,而是直接将训练数据存储起来。在预测时,根据新数据与训练数据的相似性,从训练数据中找到与之最相似的实例,并根据这些实例的标签或属性来进行预测。
监督学习的常用方法:
- 贝叶斯分类器
- 逻辑回归(分类)
- 决策树
- 支撑向量机
- 神经网络
无监督学习的常用方法:
- K-均值聚类(K-means)
- 高斯混合模型(GMM)
机器学习软件scikit-learn的学习
相关阅读:https://arxiv.org/abs/1309.0238
scikit-learn是基于python的开源机器学习库
正由于scikit-learn有标准的api(应用程序接口)设计,故其使用流程都是固定的
scikit-learn的数据表示:
- Numpy的多维数组表示密集数据
- Scipy的稀疏矩阵表示稀疏数据
scikit-learn的api设计:
- 估算器接口estimator是核心库,fit()方法作为统一的训练数据输入
- 预测器接口predictor是扩展估算器,predict()方法输入X_test来产生预测
- 转换器transformer定义了transform()方法
有监督学习
form sklearn.机器学习大类方法 import 具体方法
基础操作
数据准备
1 | from sklearn.datasets import make_classification |
对创建的数据集进行数据可视化
1 | plt.figure(figsize=(10, 10)) |
贝叶斯公式进行分类(高斯朴素贝叶斯分类器)
用后验信息更新先验概率以获得后验概率
[
P(A|B)=\frac{P(B|A)P(A)}{P(B)}
]
1 | #从GaussianNB引入GNB模型,用于拟合 |
逻辑回归
用logistic函数(Sigmoid函数),将single trial的可能结果输出为概率
[
y = \frac{1}{1 + e^{-x}}
]
逻辑回归单元
1 | from sklearn.linear_model import LogisticRegression |
决策树Decision Tree
基于特征的分类方法
决策树的生成算法:ID3算法
1 | from sklearn.tree import DecisionTreeClassifier |
支撑向量机SVM
数据预处理
特征变换
缩放:
连续值变换:
- 标准差归一化
- 最小最大归一化
- L1正则化
- L2正则化
离散值变换
数据集的拆分——训练集与测试集
1 | from sklearn.svm import SVC |
无监督学习
1 | #新建数据集 |
K均值聚类
高斯混合模型
练习
数据清洗与分析
题目:
使用 Scikit-learn 库中的鸢尾花数据集(datasets.load iris()),进行以下数据探索与分析任务(上传实验结果截屏):
数据加载与初步查看:
加载鸢尾花数据集
查看数据集的前几行,了解数据的基本结构。
数据描述:
生成数据集的描述性统计信息,包括均值、标准差、最小值、最大值等3.数据分布可视化:
绘制每个特征的直方图,查看数据的分布情况,
绘制箱线图,查看数据的离散程度和异常值。
答案:
1 | import numpy as np |
线性回归模型
题目:对糖尿病数据集(datasets.oad diabetes0)进行回归分析,并输出模型的均方误差(MSE),决定系数(R?)和可视化预测值与直实值的对比,
回答:
1 | import matplotlib.pyplot as plt |
决策树分类器
题目:使用 Scikit-learn 库中的决策树分类器
对鸢尾花数据集(datasets.load iis())进行分类分析,并输出模型的准确率、混淆矩阵和可视化决策树结构、可视化决策树分类结果。
回答:
1 | import numpy as np |
聚类算法
问题:
对鸢尾花数据集(datasets.oad iris())进行数据预处理(如标准化),然后利用KMeans聚类算法进行无监督学习,并可视化聚类结果
回答:
1 | import numpy as np |