# MachineLearning
**Repository Path**: CandyWall/machine-learning
## Basic Information
- **Project Name**: MachineLearning
- **Description**: 机器学习入门,常用的机器学习算法
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 2
- **Created**: 2021-04-07
- **Last Updated**: 2025-05-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 机器学习入门
手写识别和人脸识别数据集比较大, 国内下载较慢,有需要的小伙伴可以自己拿我下载好的数据集,
下载链接:[https://pan.baidu.com/s/1p2lqS1vL3lImSQ07ZO67nA](https://pan.baidu.com/s/1p2lqS1vL3lImSQ07ZO67nA) 提取码:xc55
然后把这个文件夹解压到项目的目录下,然后通过下面两行代码就可以加载到了。
```python
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', data_home="test_data/")
```
## 1. 开发环境安装与测试
### 1.1 开发环境说明
本次机器学习的相关代码测试基于Python语言进行,Pycharm是一块好用且稳定的Python集成开发环境,而缺点是一些常用的机器学习类库需要自己动手添加,Anaconda正好弥补了这一点,自带了很多诸如numpy、sklearn、pandas等好用的数据处理和机器学习类库,省去了我们自己安装的麻烦,所以结合两者一同使用才是快速上手机器学习开发的最佳途径,并且Anaconda中内置了Jupyter notebook,这是一块基于浏览器的开发工具,支持代码运行和文档书写的混合模式,方便我们在运行代码的同时可以记录一些心得体会。
### 1.2开发工具下载
* Anaconda下载地址:
https://www.anaconda.com/products/individual
* Pycharm下载地址:
https://www.jetbrains.com/zh-cn/pycharm/
### 1.3 配置并测试`Pycharm`
下载好开发工具并安装完毕后,接着就对Pycharm进行一下配置:先使用Pycharm新建一个python项目,在配置Interpreter(Python代码解释器)的时候需要选择Anaconda安装目录下的python.exe,这样后面就可以在Pycharm中直接使用Anaconda提供的开发库了。第一次初始项目可能比较费时,IDE会给Anaconda内置的库建立索引,以提高后续开发中访问的效率,需要耐心等待。

等待项目初始化后编写代码进行测试,如果控制台能成功打印输出语句,表示numpy、matplotlib、sklearn、pandas库被正常引入,Pycharm就可以正常使用了。

|
注:Pycharm请使用2019之后的版本或者最新版,经过测试,使用2018版本的Pycharm在配置Anaconda的代码解释器之后,运行代码的时候会报一些莫名其妙的错,numpy、matplotlib、sklearn、pandas库会出现找不到的情况,我经过各种百度,最后也没有解决,而换成最新版就没有这个问题了(简直无语。。。) |
### 1.4 配置并测试 `Jupyter notebook`
安装了Anaconda后默认是带着Jupyter notebook这块工具的,在开始菜单下的Anaconda目录下找到Jupyter notebook直接运行即可,浏览器会启动浏览器并打开notebook开发主页。不过Jupyter notebook默认的工作目录是在C盘的用户文件夹下,不是很方便。这里为了方便后期在Jupyter notebook中访问Pycharm项目下的资源和调用代码,直接将Jupyter notebook的工作目录设置在之前的Pycharm项目下,更改工作目录的方法如下:
1. 在开始菜单下的Anaconda自带的命令行工具Anaconda Powershell Pormpt

2. 使用cd命令进入到自定义的Jupyter notebook的工作目录(也是我的Pycharm项目的根目录)下
3. 输入命令Jupyter notebook,浏览器中会弹出notebook的开发主页


接下来在notebook中新建一个Python3的代码文件:

尝试书写代码并运行:

### 1.5 装插件让jupyter notebook显示Markdown大纲目录
参考知乎技术帖:[https://zhuanlan.zhihu.com/p/99887908](https://zhuanlan.zhihu.com/p/99887908)
到这里开发环境就搭建好了
## 2. Jupyter notebook的一些使用技巧
### 2.1 魔法命令
这里重点测试后面会用到的下面几条魔法命令
* %run:调用外部Python代码,方法的话也会加载到内存中
* %timeit:测试一条代码的执行时间,会进行执行多次取平均值
* %time:测试一条代码的执行时间,只会执行一次
* %%timeit:测试一段代码的执行时间,会进行执行多次取平均值
* %%time:测试一段代码的执行时间,只会执行一次
* %lsmagic:查看其他魔法命令
## 3. numpy基础用法
* Python自带的List和Array各自的缺陷,numpy.array的优势
* numpy.array():生成各种类型的向量(矩阵)
* numpy.random.randint():产生指定尺寸,元素为指定范围的随机整数的向量(矩阵)
* numpy.random.seed():指定产生随机数的种子,用于复现相同的随机数
* numpy.random.random():产生指定尺寸,元素为介于0-1之间的随机数的向量(矩阵)
* numpy.random.normal():产生一个指定尺寸,元素为符合正态分布的随机数向量(矩阵)
* numpy.arange():产生指定起始点和终止点,指定步长的向量
* numpy.random.linspace():将指定的区间等分,分割点作为元素的向量
* numpy?、help(numpy):查看模块或者方法的说明文档
## 4. numpy.array中的运算
## 5. numpy.array中的聚合操作
## 6. numpy.array中的索引操作
## 7. matplotlib基础
## 8. 使用sklearn读取数据和简单的数据探索
## 9. k近邻算法
## 10. 线性回归算法
## 11.梯度下降法
## 12. 主成分PCA
## 13. 多项式回归
## 14. 交叉验证
## 15. 模型正则化
## 16. 逻辑回归
## 17. 混淆矩阵,精准率和召回率
## 18. 支撑向量机
## 19. 决策树
## 20. 集成学习
# 文档待整理
后期会持续完善...