# 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内置的库建立索引,以提高后续开发中访问的效率,需要耐心等待。 ![image-20210407181648124](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407181648124.png) 等待项目初始化后编写代码进行测试,如果控制台能成功打印输出语句,表示numpy、matplotlib、sklearn、pandas库被正常引入,Pycharm就可以正常使用了。 ![image-20210407182312820](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407182312820.png)
注: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 ![image-20210407185008165](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407185008165.png) 2. 使用cd命令进入到自定义的Jupyter notebook的工作目录(也是我的Pycharm项目的根目录)下 3. 输入命令Jupyter notebook,浏览器中会弹出notebook的开发主页 ![image-20210407185356254](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407185356254.png) ![](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407185732043.png) 接下来在notebook中新建一个Python3的代码文件: ![image-20210407190000028](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407190000028.png) 尝试书写代码并运行: ![image-20210407190101341](https://gitee.com/CandyWall/my_pic/raw/master/image/image-20210407190101341.png) ### 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. 集成学习 # 文档待整理 后期会持续完善...