社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

1.5 万 Star!热门机器学习算法的 Python实现

Python开发者 • 4 年前 • 439 次点击  

【导语】:本文推荐的 GitHub 项目用 Python 实现流行的机器学习算法,还包括算法实现背后的解析。每个算法都有交互式 Jupyter Notebook 演示,你可以使用它来训练数据和算法配置,并实时在浏览器中查看结果、图表和预测。


简介


Homemade Machine Learning 这个项目的目标,并不是通过使用第三方库一行实现机器学习算法,而是从零开始实现,并且能更好地理解每个算法背后的数学原理。这就是为什么所有的算法实现都被叫做“homemade”,并且这些算法并不打算用于实际生产中。


(前哨君提示由于微信不支持外链,下文中的📗 数学、⚙️ 代码 和 ▶️ 演示,需要在项目主页跳转查看。)


本项目地址: 

https://github.com/trekhleb/homemade-machine-learning


监督式学习


在监督式学习中,我们将一组训练数据作为输入,每个训练组中,一组标签或者“正确答案”作为输出。然后,我们训练我们的模型(机器学习算法参数)将输入映射到正确的输出中(正确的预测)。最终的目标是找到一个模型参数,这个模型参数能够做到,即使是一个新的输入例,也能保持持续正确的输入->输出映射(预测)。


回归


在回归问题中,我们做实值预测。最基本的,我们尝试沿着训练给出的例子,画一个线/平面/n维平面。

使用示例:股票价格预测,销售分析,任何数字依赖等。

线性回归


  • 📗 数学 | 线性回归 - 理论和延申阅读的链接

  • ⚙️ 代码 | 线性回归- 实现示例

  • ▶️ 演示 | 单变量线性回归 - 通过经济GDP预测国家幸福指数

  • ▶️ 演示| 多元线性回归 - 通过经济GDP和自由度指数来预测国家幸福指数

  • ▶️ 演示| 非线性回归 - 通过带有多项式和正弦特征的线性回归来预测非线性依赖

分类


在分类问题中,我们通过某种特征过滤了输入例。

使用示例:垃圾过滤器,语言探测,寻找相似文档,手写文字识别等。

逻辑回归


  • 📗 数学 | 逻辑回归 - 理论和拓展阅读的链接

  • ⚙️ 代码 | 逻辑回归 - 实现示例

  • ▶️ 演示| 逻辑回归(线性边界) - 基于花瓣长度和宽度预测鸢尾花

  • ▶️ 演示 | 逻辑回归(非线性边界) - 基于参数1和参数2预测微型芯片的有效性

  • ▶️ 演示 | 多元逻辑回归| MNIST - 从28x28像素的图片中识别手写数字

  • ▶️ 演示 | 多元逻辑回归| 流行的MNIST - 从28x28像素的图片中识别衣服类型


非监督式学习


非监督式学习是机器学习的一个分支,学习使用的测试数据没有被标记,分类或归纳。非监督式学习没有反馈,而是学习识别数据中的共性,之后的具体反应基于每个数据段中存在或不存在的共性。

聚类


在聚类问题中,我们通过未知的特点过滤训练示例。算法本身决定什么样的特性用于过滤。

使用举例:市场分割,社会网络分析,组织计算集群,天文数据处理,图像压缩等。

🤖 K-means 算法
📗 数学 | K-means 算法 - 理论和拓展阅读的链接
⚙️ 代码 | K-means 算法 - 实现示例
▶️ 演示| K-means 算法- 基于花瓣长度和宽度预测鸢尾花

异常探测


异常探测(也叫离群探测)是稀有物品、事件或者观察的鉴别,主要通过比对与主数据的显著不同来提高怀疑特性。

使用示例:入侵检测,欺诈检测,系统健康监控,还有从数据集中删除异常数据等。

🤖 使用高斯分布进行异常探测
📗 数学 | 使用高斯分布进行异常探测 - 理论和拓展阅读的链接
⚙️ 代码| 使用高斯分布进行异常探测- 实现用例
▶️ 演示 | 异常探测 - 找到服务器操作中的异常,比如潜伏期,临界值

神经网络


神经网络不是一个算法,而是一个机器学习的算法框架,主要用来处理复杂的数据输入。

使用示例:通常是所有其他算法的替代品,例如图像识别,声音识别,图像处理(分析具体特征),语言翻译等。

多层认知 (MLP)


📗 数学 | 多层认知 - 理论和拓展阅读的链接
⚙️ 代码| 多层认知- 实现用例
▶️ 演示 | 多层认知 | MNIST - 从像素为28x28的图片中识别手写笔迹
▶️ 演示 | 多层认知| 流行的MNIST - 从28x28像素的图片中识别衣服类型

机器学习图谱


学习前提


  1. 安装python

  2. 安装依赖。运行下面的命令,可以安装本项目需要的所有依赖:

pip install -r requirements.txt
  1. 本地启动Jupyter或者远程启动Jupyter

数据集


本项目使用的数据集可以在如下链接中找到:

https://github.com/trekhleb/homemade-machine-learning/tree/master/data



- EOF -

推荐阅读  点击标题可跳转

1、PyTorch 版 YOLOv4 更新了,不仅适用于自定义数据集,还集成了注意力和 MobileNet

2、Pytorch 中的 5 个非常有用的张量操作

3、什么,PyTorch 还能开发新药?哈佛推出这款工具包,10 行代码训练“药神”模型


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/105622
 
439 次点击