前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | Homemade Machine Learning - 自己动手实践机器学习算法

Github项目推荐 | Homemade Machine Learning - 自己动手实践机器学习算法

作者头像
AI研习社
发布2019-01-09 11:13:11
1.4K0
发布2019-01-09 11:13:11
举报
文章被收录于专栏:AI研习社

?通过交互式Jupyter演示和数学解释的流行机器学习算法的Python示例

项目地址:

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

【注:划线链接部分请点击底部“阅读原文”访问】

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

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

建立本项目的目的不是通过使用第三方库“one-liners”来实现机器学习算法,而是从头开始实践这些算法,并更好地理解每种算法背后的数学意义。 这就是为什么这里所有的算法实现都被称为“自制”并且不打算用于生产的原因。

监督学习

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

回归

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

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

?线性回归

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

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

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

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

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

分类

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

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

?逻辑回归

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

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

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

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

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

▶️演示| 多元逻辑回归| 时尚MNIST - 识别28x28像素图像的衣服类型

无监督学习

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

聚类

在聚类问题中,我们根据未知的特征分割训练样本。 算法本身决定使用什么特征进行分割。

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

?K-means算法

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

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

▶️演示| K-means算法 - 根据petal_length和petal_width将 鸢尾花分簇

异常检测

异常检测(也叫离群检测)是通过与大多数数据显着不同而引起怀疑的罕见项目,事件或观察的识别。

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

?使用高斯分布的异常检测

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

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

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

神经网络(NN)

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

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

?多层感知器(MLP)

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

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

▶️演示| 多层感知器| MNIST - 识别28x28像素图像的手写数字

▶️演示| 多层感知器| 时尚MNIST - 识别28x28像素图像的衣服类型

机器学习脑图

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

学习前的预备工作

安装Python

确保你的计算机上安装了Python

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

安装依赖项

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

代码语言:javascript
复制
pip install -r requirements.txt

在本地启动Jupyter

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

代码语言:javascript
复制
jupyter notebook

然后你就可以通过 http://localhost:8888. 访问这篇Jupyter Notebook

远程启动Jupyter

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

数据集

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

项目地址:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 监督学习
    • 回归
      • ?线性回归
    • 分类
      • ?逻辑回归
  • 无监督学习
    • 聚类
      • 异常检测
        • ?使用高斯分布的异常检测
        • ?多层感知器(MLP)
    • 神经网络(NN)
    • 机器学习脑图
    • 学习前的预备工作
      • 安装Python
        • 安装依赖项
          • 在本地启动Jupyter
            • 远程启动Jupyter
            • 数据集
            相关产品与服务
            语音识别
            腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档