目录

  • 1 Chapter01. Introduction
    • 1.1 课程PPT
    • 1.2 补充材料(数学基础)
    • 1.3 本节作业
  • 2 Chapter02. Bayesian Decision Theory
    • 2.1 课程PPT
    • 2.2 视频素材
    • 2.3 章节测试
  • 3 Chapter03. Maximum Likelihood and Bayesian Estimation
    • 3.1 课程PPT
    • 3.2 视频素材
    • 3.3 补充材料(EM)
  • 4 Chapter04. Nonparametric Techniques
    • 4.1 课程PPT
    • 4.2 补充材料(距离)
  • 5 Chapter05. Linear Discriminant Functions
    • 5.1 课程PPT
    • 5.2 视频素材
    • 5.3 补充材料(梯度)
    • 5.4 数学证明
  • 6 Chapter06. Neural Networks
    • 6.1 课程PPT
    • 6.2 视频素材
    • 6.3 补充材料(BP)
  • 7 Chapter07. Dimension Reduction
    • 7.1 课程PPT
    • 7.2 补充材料(奇异值)
  • 8 Chapter08. Non-metric Methods
    • 8.1 课程PPT
  • 9 Chapter09. Unsupervised Learning and Clustering
    • 9.1 课程PPT
    • 9.2 实验
  • 10 Chapter10. Algorithm-independent Machine Learning
    • 10.1 课程PPT
    • 10.2 补充材料(偏差方差两难)
    • 10.3 实验
  • 11 课程实验
    • 11.1 实验环境设置
    • 11.2 python数据常用导入方法
    • 11.3 数据探索
    • 11.4 数据预处理
    • 11.5 朴素贝叶斯分类
    • 11.6 KNN分类
    • 11.7 线性回归
    • 11.8 逻辑回归
    • 11.9 SVM实现多分类
    • 11.10 决策树分类
    • 11.11 PCA实现
    • 11.12 K-means聚类实现
数据预处理

实验. 利用Scikit-learn完成数据预处理

实验目标

本实验旨在通过实际操作,使学生掌握利用Scikit-learn进行数据预处理的基本流程和方法,包括数据清洗、特征缩放、缺失值处理、数据转换等。

实验环境

o    Python编程语言

o    Scikit-learn库

o    NumPy和Pandas库(用于数据处理)

o    JupyterNotebook或类似IDE(用于代码编写和结果展示)

实验数据集

选择一个包含多种数据类型(如数值型、字符型、日期型等)的公开数据集,如“Titanic乘客数据集”或“UCI机器学习库”中的其他数据集。

实验步骤

数据加载与初步探索

o    使用Pandas库加载数据集。

o    查看数据集的基本信息(如列名、数据类型、缺失值情况等)。

o    对数据进行初步的探索性分析(如绘制直方图、箱线图、散点图等)。

数据清洗

o    处理缺失值:根据数据的实际情况,选择合适的策略处理缺失值(如删除、填充均值、填充中位数、插值等)。

o    处理重复值:删除数据集中的重复记录。

o    异常值检测与处理:使用箱线图、Z-score等方法检测异常值,并决定是保留、删除还是修正这些异常值。

特征缩放与标准化

o    对数值型特征进行特征缩放(如Min-Max缩放、标准化等),以提高模型的性能。

o    使用Scikit-learn的StandardScaler、MinMaxScaler等类进行特征缩放。

数据转换

o    类型转换:将字符型特征转换为数值型特征(如使用独热编码、标签编码等)。

o    日期型特征处理:将日期型特征转换为有意义的数值特征(如提取年、月、日、星期等)。

o    特征选择:根据相关性分析、递归特征消除等方法选择重要的特征。

数据集划分

o    使用Scikit-learn的train_test_split函数将数据集划分为训练集和测试集。

实验结果展示

o    展示数据清洗前后的对比(如缺失值处理前后的数据集大小、异常值处理前后的数据分布等)。

o    展示特征缩放前后的对比(如特征值的范围变化)。

o    展示数据转换后的结果(如字符型特征转换为数值型特征后的数据集)。

实验总结

o    总结数据预处理的重要性和基本步骤。

o    分析实验过程中遇到的问题和解决方案。

o    讨论不同数据预处理方法对模型性能的影响。


实验代码参考

以下是一个使用Scikit-learn进行数据预处理的代码示例(以Titanic乘客数据集为例):

————————————————

# 导入必要的库



# 加载数据集  



# 数据清洗  

# 处理缺失值(示例:填充年龄的中位数)  



# 删除缺失值过多的列(示例:删除“Cabin”列,因为缺失值太多)  



# 处理重复值(如果有)  



# 特征缩放  



# 数据转换,如:字符型特征转换为数值型特征(示例:性别列)  



# 独热编码(示例:对“Embarked”列进行独热编码)  



# 数据集划分  



# 展示结果(示例:查看数据清洗和转换后的前几行数据)


————————————————