# 机器学习 **Repository Path**: jiao001/machine-learning ## Basic Information - **Project Name**: 机器学习 - **Description**: 学习机器学习的代码资料等 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Machine Learning 入门学习项目 本项目是机器学习入门学习的实践代码集合,涵盖了特征工程、分类算法和回归算法等核心知识点,基于 scikit-learn 框架实现。 ## 技术栈 - **编程语言**: Python 3.x - **机器学习框架**: scikit-learn - **数据处理**: pandas - **中文分词**: jieba - **模型保存**: joblib ## 文件结构 ``` Machine_learning/ ├── day01_machine_learning.py # 特征工程基础 ├── day02_machine_learning.py # 分类算法 ├── day03_machine_learning.py # 回归算法 ├── day01_instacart_pca.ipynb # Instacart购物篮分析:多表合并 + 用户-品类关系PCA降维 ├── day02_facebook_demo.ipynb # Facebook位置预测:基于坐标(x,y)、精度、时间预测地点类别 ├── day02_titanic_demo.ipynb # Titanic幸存者预测:使用决策树分析乘客等级、性别、年龄等特征 ├── day03_cancer_demo.ipynb # 乳腺癌良恶性分类:UCI威斯康星数据集,细胞特征分析 ├── FBlocation/ # Facebook位置数据集 │ ├── test.csv │ └── train.csv ├── instacart/ # Instacart购物篮数据集 │ ├── aisles.csv │ ├── order_products__prior.csv │ ├── orders.csv │ └── products.csv ├── dating.txt # 约会网站数据集 ├── house.csv # 房价数据集(波士顿房价替代) ├── news_data.csv # 新闻分类数据集 ├── titanic.csv # Titanic数据集 ├── factor_returns.csv # 因子收益率数据集 ├── iris_tree.dot # 决策树可视化文件 ├── titanic_tree.dot # Titanic决策树可视化文件 └── my_ridge.pkl # 保存的岭回归模型 ``` ## 学习内容 ### Day 01 - 特征工程 | 模块 | 功能 | 代码函数 | |------|------|----------| | 数据集使用 | sklearn内置数据集加载与划分 | `datasets_demo()` | | 字典特征抽取 | 类别特征独热编码 | `dict_demo()` | | 文本特征抽取 | 词袋模型 CountVectorizer | `count_demo()`, `count_chinese_demo()` | | 中文分词 | jieba分词配合文本向量器 | `cut_word()`, `count_chinese_demo2()` | | TF-IDF | 文本特征加权 | `tfidf_demo()` | | 归一化 | MinMaxScaler 缩放到指定区间 | `minmax_demo()` | | 标准化 | StandardScaler 均值0方差1 | `stand_demo()` | | 低方差过滤 | 删除无区分度特征 | `variance_demo()` | | PCA降维 | 主成分分析 | `pca_demo()` | ### Day 02 - 分类算法 | 模块 | 算法 | 代码函数 | |------|------|----------| | KNN分类 | K近邻算法 | `knn_iris()` | | KNN+网格搜索 | 超参数调优 | `knn_iris_gscv()` | | 朴素贝叶斯 | 新闻文本分类 | `nb_news()` | | 决策树 | 信息熵划分 | `decision_iris()` | ### Day 03 - 回归算法 | 模块 | 算法 | 代码函数 | |------|------|----------| | 线性回归 | 正规方程求解 | `linear1()` | | 线性回归 | 梯度下降求解 | `linear2()` | | 岭回归 | L2正则化 | `linear3()` | ## 环境配置 ```bash pip install scikit-learn pandas jieba joblib ``` ## 使用方法 ### 运行Python脚本 每个脚本包含多个功能模块,默认运行最后一个模块。取消注释即可运行对应模块: ```python if __name__ == "__main__": # 取消注释要运行的模块 # knn_iris() # nb_news() decision_iris() # 默认运行 ``` 运行方式: ```bash python day02_machine_learning.py ``` ### 运行Jupyter Notebook ```bash jupyter notebook day02_titanic_demo.ipynb ``` ## 数据集说明 | 数据集 | 用途 | 来源 | |--------|------|------| | iris | 鸢尾花分类(内置) | sklearn.datasets | | dating.txt | 特征缩放演示 | 自定义数据集 | | house.csv | 房价预测 | 波士顿房价离线版 | | news_data.csv | 新闻分类 | 本地CSV | | titanic.csv | 幸存者预测 | Kaggle竞赛数据 | | FBlocation | 位置预测 | Kaggle竞赛数据 | | instacart | 购物篮分析 | Kaggle竞赛数据 | | factor_returns.csv | 特征选择演示 | 股票因子数据 | ## 注意事项 1. **数据集路径**: 确保CSV文件与脚本在同一目录下 2. **中文编码**: 部分数据集使用UTF-8编码 3. **模型保存**: 岭回归模型保存为 `my_ridge.pkl` 4. **决策树可视化**: dot文件需安装graphviz工具查看 ## 学习顺序建议 1. **Day 01**: 特征工程基础(数据预处理是机器学习的关键) 2. **Day 02**: 分类算法(KNN、朴素贝叶斯、决策树) 3. **Day 03**: 回归算法(线性回归、岭回归) 4. **实战Notebook**: 使用真实数据集练习 ## 参考资料 - [scikit-learn官方文档](https://scikit-learn.org/stable/) - [机器学习实战](https://book.douban.com/subject/24703171/)