Skip to content

Repository files navigation

机器学习算法学习项目

项目简介

本项目是一个系统的机器学习算法学习仓库,涵盖了从基础到进阶的多种机器学习算法,包括监督学习、无监督学习以及特征工程等核心内容。每个算法都配有详细的理论讲解、代码实现和实际案例。

项目结构

aitest01/
├── 决策树算法入门学习.md          # 决策树算法理论详解
├── 聚类算法入门学习.md            # 聚类算法理论详解
├── 特征工程-特征过滤.md           # 特征工程与降维方法
├── 决策树算法.ipynb              # 决策树算法实践(泰坦尼克号预测)
├── 朴素贝叶斯算法.ipynb          # 朴素贝叶斯文本分类
├── 逻辑回归算法.ipynb            # 逻辑回归分类
├── 线性回归算法.ipynb            # 线性回归预测
├── 线性回归练习.ipynb            # 线性回归练习
├── knn练习.ipynb                 # K近邻算法练习
├── k-近邻算法.ipynb              # K近邻算法详解
├── 时序预测.ipynb                # 时间序列预测
├── 聚类算法.ipynb                # 聚类算法实践
├── readme.md                     # 项目说明文档
└── dataset/                      # 数据集目录

算法目录

1. 监督学习算法

1.1 分类算法

  • 决策树 (Decision Tree)

    • 文件:决策树算法入门学习.md, 决策树算法.ipynb
    • 内容:信息熵、信息增益、基尼指数、特征工程、泰坦尼克号生存预测
    • API:sklearn.tree.DecisionTreeClassifier
  • 朴素贝叶斯 (Naive Bayes)

    • 文件:朴素贝叶斯算法.ipynb
    • 内容:贝叶斯定理、文本分类、情感分析
    • API:sklearn.naive_bayes.MultinomialNB
  • 逻辑回归 (Logistic Regression)

    • 文件:逻辑回归算法.ipynb
    • 内容:sigmoid函数、最大似然估计、二分类与多分类
    • API:sklearn.linear_model.LogisticRegression
  • K近邻 (K-Nearest Neighbors)

    • 文件:k-近邻算法.ipynb, knn练习.ipynb
    • 内容:距离度量、K值选择、分类与回归
    • API:sklearn.neighbors.KNeighborsClassifier

1.2 回归算法

  • 线性回归 (Linear Regression)

    • 文件:线性回归算法.ipynb, 线性回归练习.ipynb
    • 内容:最小二乘法、梯度下降、模型评估
    • API:sklearn.linear_model.LinearRegression
  • 时序预测 (Time Series)

    • 文件:时序预测.ipynb
    • 内容:时间序列分析、趋势预测

2. 无监督学习算法

  • 聚类算法 (Clustering)
    • 文件:聚类算法入门学习.md, 聚类算法.ipynb
    • 内容:K-Means、层次聚类、DBSCAN、轮廓系数、肘部法则
    • API:sklearn.cluster.KMeans

3. 特征工程

  • 特征过滤与降维
    • 文件:特征工程-特征过滤.md
    • 内容:方差过滤、统计测试、PCA降维
    • API:sklearn.feature_selection, sklearn.decomposition.PCA

环境要求

  • Python 3.9+
  • 主要依赖包:
    numpy
    pandas
    matplotlib
    seaborn
    scikit-learn
    jieba (中文分词)
    

快速开始

  1. 克隆项目

    git clone <repository-url>
    cd aitest01
  2. 安装依赖

    pip install numpy pandas matplotlib seaborn scikit-learn jieba
  3. 运行Jupyter Notebook

    jupyter notebook
  4. 选择算法学习

    • 打开对应的 .ipynb 文件
    • 按顺序运行代码单元格
    • 阅读Markdown说明文字

学习路径建议

初学者路径

  1. 线性回归 → 理解回归基础
  2. K近邻 → 理解分类概念
  3. 决策树 → 理解特征选择
  4. 特征工程 → 掌握数据预处理

进阶路径

  1. 逻辑回归 → 理解概率分类
  2. 朴素贝叶斯 → 理解文本分类
  3. 聚类算法 → 理解无监督学习
  4. 时序预测 → 理解时间序列

核心概念速查

评估指标

  • 分类:准确率、精确率、召回率、F1分数、ROC-AUC
  • 回归:MSE、RMSE、MAE、R²
  • 聚类:轮廓系数、Calinski-Harabasz指数、SSE

数据预处理

  • 缺失值处理
  • 特征编码(标签编码、独热编码)
  • 特征标准化/归一化
  • 文本特征提取(TF-IDF、词袋模型)

模型优化

  • 交叉验证
  • 网格搜索(GridSearchCV)
  • 超参数调优
  • 特征选择

实战案例

1. 泰坦尼克号生存预测(决策树)

  • 数据:乘客信息(年龄、性别、舱位等)
  • 目标:预测乘客是否生还
  • 技术:特征工程、决策树可视化

2. 书籍评价情感分析(朴素贝叶斯)

  • 数据:中文书籍评论
  • 目标:判断评论是好评还是差评
  • 技术:中文分词、停用词过滤、TF-IDF

3. 客户分群(聚类)

  • 数据:客户消费行为数据
  • 目标:将客户分为不同群体
  • 技术:K-Means、轮廓系数评估

常见问题

Q1: 如何选择合适的算法?

  • 数据量小:朴素贝叶斯、K近邻
  • 需要解释性:决策树、线性回归
  • 文本数据:朴素贝叶斯
  • 高维数据:逻辑回归、SVM

Q2: 如何处理类别不平衡?

  • 过采样(SMOTE)
  • 欠采样
  • 调整类别权重
  • 使用合适的评估指标(F1、AUC)

Q3: 如何防止过拟合?

  • 交叉验证
  • 正则化(L1/L2)
  • 减少模型复杂度
  • 增加训练数据

参考资料

贡献指南

欢迎提交Issue和Pull Request来完善项目内容。

许可证

本项目仅供学习交流使用。

About

有关机器学习的模型介绍和使用、相关api的调用,以及使用案例

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages