用Python实现流行机器学习算法

article/2025/4/27 10:44:55

对于此库的Octave/MatLab版本,请检查machine-learning-octave项目。

该库包含在Python中实现的流行机器学习算法的示例,其中包含数学背后的解释。 每个算法都有交互式Jupyter Notebook演示,允许您使用训练数据,算法配置,并立即在浏览器中查看结果,图表和预测。 在大多数情况下,解释是以Andrew Ng的这个伟大的机器学习课程为基础的。

此库的目的不是通过使用第三方库“单行方式”来实现机器学习算法,而是从头开始实践这些算法,并更好地理解每种算法背后的数学思维。 这就是为什么所有算法实现都被称为“自制”并且不打算用于生产的原因。

更多Python视频、源码、资料加群683380553免费获取

监督学习

在监督学习中,我们将一组训练数据作为输入,并将每组训练集的标签或“正确答案”作为输出。 然后我们正在训练我们的模型(机器学习算法参数)以正确地将输入映射到输出(以进行正确的预测)。 最终目的是找到这样的模型参数,即使对于新的输入示例,也能成功地得到正确的输入 - 输出映射(预测)。

回归

在回归问题中,我们进行实际的价值预测。 基本上我们尝试沿着训练样例绘制线/平面/n维平面。

用法示例:股票价格预测,销售分析,任意数字的依赖性等。

线性回归

数学| 线性回归 - 理论和进一步阅读的链接

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

演示| 单变量线性回归 - 按经济GDP预测国家幸福得分

演示| 多元线性回归 - 按经济GDP和自由指数预测国家幸福得分

演示| 非线性回归 - 使用具有多项式和正弦特征的线性回归来预测非线性依赖性。

分类

在分类问题中,我们通过某些特征分割输入示例。

用法示例:垃圾邮件过滤器,语言检测,查找类似文档,手写字母识别等。

逻辑回归

数学| 逻辑回归 - 理论和进一步阅读的链接

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

演示| 逻辑回归(线性边界) - 基于petal_length和petal_width预测虹膜花类

演示| 逻辑回归(非线性边界) - 基于param_1和param_2预测微芯片有效性

演示| 多元逻辑回归| 手写测试数据 - 识别28x28像素图像的手写数字。

演示| 多元逻辑回归| 时尚测试数据 - 识别28x28像素图像的衣服类型。

无监督学习

无监督学习是机器学习的一个分支,它从未经标记,分类或归类的测试数据中学习。 无监督学习不是响应反馈,而是根据每个新数据中是否存在这种共性来识别数据中的共性并做出反应

聚类

在聚类问题中,我们将以未知特征来分割训练样例。 算法本身决定了用于分割的特征。

用法示例:市场细分,社交网络分析,组织计算集群,天文数据分析,图像压缩等。

K-means算法

数学| K-means算法 - 理论和进一步读数的链接

代码| K-means算法 - 实现示例

演示| K-means算法 - 根据petal_length和petal_width将虹膜花分成簇

异常检测

异常检测(也称孤立点检测)是通过与大多数数据显著不同而引起怀疑的极少类别,事件或观测的识别。

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

利用高斯分布进行异常检测

数学| 使用高斯分布的异常检测 - 理论和进一步读数的链接

代码| 使用高斯分布的异常检测 - 实现示例

演示| 异常检测 - 查找服务器操作参数(如延迟和阈值)中的异常

神经网络(NN)

神经网络本身不是算法,而是许多不同机器学习算法的框架,它们协同工作并处理复杂的数据输入。

用法示例:一般作为所有其他算法的替代,图像识别,语音识别,图像处理(应用特定样式),语言翻译等。

多层感知器(MLP)

数学| 多层感知器 - 理论和进一步阅读的链接

代码| 多层感知器 - 实现示例

演示| 多层感知器| 手写测试数据 - 识别28x28像素图像的手写数字。

演示| 多层感知器| 时尚测试数据 - 识别28x28像素图像的衣服类型。

机器学习知识图谱

以上机器学习主题图的来源是这篇精彩的博文

先决条件

安装Python

确保您的计算机上安装了Python。

您可能希望使用venv标准Python库来创建虚拟环境,并从本地项目目录安装和提供Python,pip和所有相关软件包,以避免弄乱系统范围的软件包及其版本。

安装依赖项

通过运行以下命令安装项目所需的所有依赖项:

在本地启动Jupyter

项目中的所有演示都可以直接在浏览器中运行,而无需在本地安装Jupyter。 但是如果你想在本地启动Jupyter Notebook,你可以从项目的根文件夹运行以下命令:

在这之后,http://localhost:8888可以访问这个Jupyter Notebook。

远程启动Jupyter

每个算法部分都包含到Jupyter NBViewer的演示链接。这是Jupyter Notebook的快速在线预览器,您可以在浏览器中查看演示代码,图表和数据,而无需在本地安装任何内容。 如果您想更改代码并尝试使用演示notebook来实验,您需要在Binder中启动笔记本。 您只需单击NBViewer右上角的“在活页夹上执行”链接即可完成此操作。

数据集

可以在数据文件夹中找到用于Jupyter Notebook演示的数据集列表。


http://chatgpt.dhexx.cn/article/QKkbsIjc.shtml

相关文章

【流行学习】局部线性嵌入(Locally Linear Embedding)

一、前言 局部线性嵌入(LLE)假设数据在较小的局部是线性的,也就是说,某一个样本可以由它最近邻的几个样本线性表示,离样本远的样本对局部的线性关系没有影响,因此相比等距映射算法,降维的时间复…

流行-Manifold学习理解与应用

流行-Manifold【1】 流形,也就是 Manifold 。 1. 比较好的形象理解 流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的,即这些数据所在的空间是“嵌入在高维空间的低维流形。”。由于数据内部特征的限制&a…

【流行学习】拉普拉斯映射(Laplacian Eigenmaps)

一、前言 拉普拉斯特征映射是一种基于图的降维算法,它希望在原空间中相互间有相似关系的点,在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构信息。 二、主要步骤 拉普拉斯特征映射通过构建邻接矩阵为 W W W(…

7个流行的强化学习算法及代码实现

目前流行的强化学习算法包括 Q-learning、SARSA、DDPG、A2C、PPO、DQN 和 TRPO。 这些算法已被用于在游戏、机器人和决策制定等各种应用中,并且这些流行的算法还在不断发展和改进,本文我们将对其做一个简单的介绍。 1、Q-learning Q-learning&#xff1…

流行学习,比较好的一篇博客

转载自:https://blog.csdn.net/sinat_32043495/article/details/78997758 嵌入在高维空间的低维流形 流形:局部具有欧几里得空间性质的空间 1.较好的描述转载 作者:暮暮迷了路 链接:https://www.zhihu.com/question/2401548…

深度学习—近年来流行的卷积神经网络(一)

近年来流行的卷积神经网络 1. 回顾与目标2. 近年来流行的卷积神经网络2.1 VGGNet2.1.1 感受野的概念2.1.2 感受野的计算 2.2 GooleNet2.3 ResNet 3. 结尾参考资料 1. 回顾与目标 前面几讲,我们以LeNet和AlexNet为例,详细讲解了卷积神经网络的结构。从20…

流行学习常用算法

Isomap:等距映射。前提假设为低维空间中的欧式距离等于高维空间中的侧地线距离,当然该算法具体实施时是高维空间中较近点之间的测地线距离用欧式距离代替,较远点距离用测地线距离用最短路径逼近。 LLE:局部线性嵌入。前提假设是数据所在的低维…

流行学习与拉普拉斯变换的推导

参考:拉普拉斯矩阵 参考:流行学习

流行学习初步理解

一. 流形学习的英文名为manifold learning。其主要思想是把一个高维的数据非线性映射到低维,该低维数据能够反映高维数据的本质,当然有一个前提假设就是高维观察数据存在流形结构,其优点是非参数,非线性,求解过程简单。…

流行学习简单入门与理解

最近博主再看西瓜书第十三章半监督学习,文章中作者提到需要少量查询的主动学习、K-means簇的聚类,以及流行学习。对于流行学习,博主也是第一次接触,下面我们来简单学习和理解一下流行学习。 1. 半监督学习 SSL的成立依赖于模型假…

机器学习----流行学习(manifold learning)的通俗理解

流形学习(manifold learning)是一类借鉴了拓扑流行概念的降维方法,在降维时,若低维流行嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去十分复杂,但在局部上仍具有欧式空间(对现实空间的…

流行学习Manifold Learning

文章目录 1、流行学习前言:2、流形学习的概念流形的概念:流行学习的概念: 3、流形学习的分类4、高维数据降维与可视化5、基本问题和个人观点6、参考文献 1、流行学习前言: 流形学习是个很广泛的概念。这里我主要谈的是自从2000年…

关于nn.embedding的理解

import torch.nn as nn nn.Embedding(num_embeddings, embedding_dim, padding_idxNone, max_normNone, norm_type2, scale_grad_by_freqFalse, sparseFalse)参数解释 num_embeddings (python:int) – 词典的大小尺寸,比如总共出现5000个词,那就输入500…

深究embedding层

关于embedding层,贴出一些很好的链接,以供备忘与分享。 http://blog.sina.com.cn/s/blog_1450ac3c60102x79x.html https://blog.csdn.net/sjyttkl/article/details/80324656 https://blog.csdn.net/jiangpeng59/article/details/77533309 https://juejin…

一文搞懂 Embedding !

这篇文章把embedding单独提出来,梳理一下embedding在推荐系统中的应用。以下内容主要从深度学习方法和传统的协同过滤方法两个方面加深和理解在推荐系统领域对embedding的认识,详细解读下“embedding”这一重要思想。 什么是Embedding? Embedding(嵌入)是拓扑学里面的词…

5、Embedding

本文作为个人笔记引用于: https://blog.csdn.net/weixin_42078618/article/details/82999906 https://blog.csdn.net/weixin_42078618/article/details/84553940 https://www.jianshu.com/p/63e7acc5e890 简介 假设,我们中文,一共只有10个字…

embedding

what is emdding embedding就是把字词用向量表示出来,相当于是对字词做encoding motivation 比如 猫,狗,我们当然可以直接把他们表示为一些独立的离散符号,但是这样的表示毫无意义,而且会产生大量稀疏数据。使我们在…

Embeding编码方式

Embeding编码方式概述 独热码:数量大而且过于稀疏,映射之间是独立的,没有表现出关联性。 Embedding:是一种单词编码方法,用低维向量实现了编码,这种编码通过神经网络训练优化,能表达出单词间的…

机器学习中的Embedding

来自知乎的一个解释:(版权归原作者所有,仅供学习,禁止商用) https://zhuanlan.zhihu.com/p/46016518 解释还是有点感觉迷糊,数学解释: Embedding在数学上表示一个maping, f: X -> Y&#x…

Embedding 编码方法

一、作用 Embedding 是一种单词编码,用低维向量实现了编码,这种编码通过神经网络训练优化,能表达单词之间的相关性。 在是用独热码one_hot编码时,我们会发现单词的编码十分稀疏,以至于训练的效率不是很高。采用embeddi…