对于机器学习有兴趣,不少人应该会先从 Andrew Ng ( 吴恩达 ) 的机器学习课程开始,但是吴恩达的课程是使用

octave 这个工具当作练习。这个 github 项目包含使用 Python 实现流行机器学习算法的范例,并解释了其背后的

数学原理。 每个算法都有交互式的 Jupyter Notebook 示范,可以让你玩训练数据、算法配置,并立即在浏览器中

检视结果、图表和预测。 在大多数情况下,这些解释都是基于 Andrew Ng 的这门伟大的机器学习课程。

这个储存库的目的不是通过使用第三方程式库”一行程序”来实现机器学习算法,而是从头开始实践这些算法,并更好

地理解每个算法背后的数学原理。

https://softnshare.com/github-machine-learning-octave/

监督式学习 ( Supervised Learning )

在监督式学习,我们有一组作为输入的训练资料和一组标签或作为输出的每个训练集的”正确答案”。 然后我们训练我们的模型(机器学习演算法参数)来正确地对映输入到输出(做正确的预测)。 最终的目的是找到这样的模型参数,将成功地继续正确的输入→输出对映(预测) ,甚至为新的输入例子。

回归 Regression

在回归问题中,我们做真实值的预测。 基本上,我们尝试沿着训练样本绘制一条线 / 平面 / n 维平面( line/plane/n-dimensional plane)。

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

Math | Linear Regression-进一步阅读的理论及连结
Code | Linear Regression-实现范例
Demo | 单变数线性回归 Univariate Linear Regression-使用 economy GDP 来预测城市快乐指数
Demo | 多变数线性回归 Multivariate Linear Regression-使用 economy GDP 和 freedom index 来预测城市快乐指数
Demo | 非线性回归 Non-linear Regression-使用线性回归多项式及正弦曲线特征来预测非线性相关性

分类 Classification

在分类问题中,我们根据一定的特征分割输入范例。

使用范例: 垃圾邮件过滤器,语言侦测,寻找类似的文件,手写字母识别等。

 逻辑回归 Logistic Regression


非监督式学习 Unsupervised Learning

非监督式学习是机器学习的一个分支,它从未被标记、分类或分类的测试资料中学习。 非监督式学习不是对反馈做出反应,而是根据每个新资料中是否存在这些共同特性来识别资料中的共同性,并根据这些共同性的存在或不存在做出反应。

聚类 Clustering

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

使用范例: 市场划分分析,社群网路分析,组织运算聚类,天文资料分析,影像压缩,等等。

 K-means Algorithm

异常检测 Anomaly Detection

异常检测指的是识别那些引起怀疑的罕见物品、事件或观察异常检测,它们与大多数资料大相径庭。

使用范例: 入侵侦测、诈欺侦测、系统健康监控、从资料集中删除异常资料等。

 利用高斯分布 ( Gaussian Distribution ) 进行异常检测


神经网路 Neural Network (NN)

神经网路本身不是一个演算法,而是一个框架,将许多不同的机器学习演算法一起运作和处理复杂的资料输入。

使用范例: 作为所有其它演算法的一般替代,影像辨识,语音辨识,影像处理(应用特定风格) ,语言翻译等。

 多层感知器 Multilayer Perceptron (MLP)


机器学习地图

这张机器学习地图的来源是这篇精彩的部落格文章

开始前的准备

确保在机器上安装了 Python。

您可能希望使用 venv 标准的 Python 程式库来建立虚拟环境,并从本地专案目录中安装和使用 Python、 pip 和所有相依套件服务,以避免搞乱系统范围的套件及其版本。

安装相依套件

通过执行以下命令安装专案所需的所有依赖套件:

pip install -r requirements.txt

在本地端启动 Jupyter

专案中的所有示范都可以直接在浏览器中执行,而不需要在本地安装 Jupyter。 但是如果你想在本地启动 Jupyter Notebook,你可以在专案的根资料夹中执行以下命令:

jupyter notebook

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

远端启动 Jupyter

每个演算法部分包含到 Jupyter NBViewer 的示范连结。 这是一款快速的 Jupyter Notebooks 线上预览器,你可以直接在浏览器中看到示范的程式码、图表和资料,而不需要在本地安装任何东西。 如果你想改变程式码和展示的笔记本实验,你需要启动在 Binder 的笔记本。 你可以简单地点选 NBViewer 右上角的”Execute on Binder”连结。

资料集 Datasets

用于 Jupyter Notebook 演示的资料集列表可以在 data 资料夹中找到。

github 专案介绍 – Python 范例:透过互动式的 Jupyter 和数学解释流行的机器学习演算法的更多相关文章

  1. 介绍Python程序员常用的IDE和其它开发工具

    概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境), ...

  2. error: failed to push some refs to 'https://github.com/username/python.git'

    解决error: failed to push some refs to 'https://github.com/bluepen/python.git' 当我们在使用git工具上传我们自己的代码时,可 ...

  3. selenium2 python范例

    selenium2 python范例 下面脚本的功能是:打开谷歌浏览器-->跳转到某个网址-->输入用户名和密码登录-->读取页面内的数据并求和. # coding=utf-8 #编 ...

  4. 中国爬虫违法违规案例汇总github项目介绍

    中国爬虫违法违规案例汇总github项目介绍 GitHub - 本项目用来整理所有中国大陆爬虫开发者涉诉与违规相关的新闻.资料与法律法规.致力于帮助在中国大陆工作的爬虫行业从业者了解我国相关法律,避免 ...

  5. 介绍python由来, 安装python3.8.3 及其变量的定义, 小整数池

    介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自Guido所挚爱 ...

  6. 机器学习经典算法详解及Python实现--基于SMO的SVM分类器

    原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector  ...

  7. Python之机器学习K-means算法实现

    一.前言: 今天在宿舍弄了一个下午的代码,总算还好,把这个东西算是熟悉了,还不算是力竭,只算是知道了怎么回事.今天就给大家分享一下我的代码.代码可以运行,运行的Python环境是Python3.6以上 ...

  8. 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法

    (一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...

  9. 机器学习经典算法具体解释及Python实现--K近邻(KNN)算法

    (一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值 ...

随机推荐

  1. leetcode 88 Merge Sorted Array 归并排序

    归并排序:先将数组一分为二,将左边部分排序(同样将其一分为二),再将右边部分排序,最后逐层归并.(分治策略)(稳定排序). 算法稳定性 -- 假设在数列中存在a[i]=a[j],若在排序之前,a[i] ...

  2. computed 和 watch 组合使用,监听数据全局数据状态

    我要实现的就是,当接口返回数据时,我在任何组件中都能感知到到该数据的变化,然后根据业务逻辑进行处理.展示. 实现这个效果的方式很多,比如当接口返回数据后,就emit这数据,在另外组件中on接收渲染即可 ...

  3. C#工具类之素数扩展类

    /// <summary> /// 素数帮忙类 /// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码 /// https ...

  4. [转] Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch

    [From] http://www.tuicool.com/articles/JBvQrmj 本文讲解Spring Boot基础下,如何使用 ElasticSearch,实现全文搜索. 版本须知 sp ...

  5. vue组件传参

    一.父子组件的定义 负值组件的定义有两种,我称为常规父子组件和特殊父子组件. 1.1.常规父子组件 将其他组件以import引入用自定义标签接收,在当前组件中component里注册该标签,页面上可以 ...

  6. (转)DB2 restart database命令的作用总结

    DB2 restart database命令的作用总结 原文:https://blog.csdn.net/qingsong3333/article/details/62049039 信息中心对于RES ...

  7. Nginx 配置跨域权限

    今天设置静态资源服务器时发现 Font from origin 'http://start.fbzl.org' has been blocked from loading by Cross-Origi ...

  8. 第十六章:自定义push notification sound

    前面一节已经讲过如何在ionic中集成jpush,这样我们的hybrid app在部署到ios或者android上面的时候,就可以接收通知了.如果不满足系统自带的声音,可以通过一些方式来播放自定义的通 ...

  9. nutz框架使用记录之Cnd.wrap

    这是对Cnd.wrap 官方用法 , 直接硬编码 , [JAVA]List<Person> crowd = dao.query(Person.class, Cnd.wrap("n ...

  10. ssh免密码登录快速配置方法

    环境需求: 两台Linux主机   A (192.168.3.101)和 B(192.168.3.102),如何使用主机 A 免密码登录 主机B ? 配置步骤: 首页登录主机 A ,在主机A上生成自己 ...