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

对于机器学习有兴趣,不少人应该会先从 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 资料夹中找到。

原文地址:https://www.cnblogs.com/edisp/p/10192257.html

时间: 2024-10-10 03:01:57

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

Day1_Python介绍&Python环境搭建&Python入门

Python介绍 Python前世今生 Guido van Rossum在谷歌 Python 是一种开源的面向对象的脚本语言,它起源于1989年末,当时,CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Rossum需要一种高级脚本编程语言,为其研究小组的Amoeba分布式操作系统执行管理任务.为创建新语言,他从高级数学语言ABC(ALL BASIC CODE)汲取了大量语法,并从系统编程语言Modula-3借鉴了错语处理机制.Van Rossum把这种新的语言命名为Py

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

概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境),一般以代码编辑器为核心,包括一系列周边组件和附属功能.一个优秀的IDE,最重要的就是在普通文本编辑之外, 提供针对特定语言的各种快捷编辑功能,让程序员尽可能快捷.舒适.清晰的浏览.输入.修改代码.对于一个现代的IDE来说,语法着色.错误提示.代码折 叠.代码完成.代码块定位.重构,与调试器.版本控制

python学习手册——1介绍python对象类型

在python ,数据以对象的形式出现--无论是python提供的内置对象,还是使用python或是像C扩展库这样的扩展语言工具创建的对象.尽管在以后才能确定这一概念,但对象无非是内在中的一部分,包含数值和相关操作的集合. 由于对象是python 最基本的概念,从这一章开始我们将会全面地体验python的内置对象类型. python程序可以分解成模块,语句,表达式以及对象,如下所示: 1.程序由模块构成 2.模块包含语句 3.语句包含表达式 4.表达式建立并处理对象 为什么使用内置类型 1.内置

selenium2 python范例

selenium2 python范例 下面脚本的功能是:打开谷歌浏览器-->跳转到某个网址-->输入用户名和密码登录-->读取页面内的数据并求和. 1 # coding=utf-8 #编码声明 2 import time 3 from selenium import webdriver 4 5 # 跳转到首页 6 driver = webdriver.Chrome() # Optional argument, if not specified will search path. 7 dr

编程语言介绍 Python

本节内容 什么是编程语言 Python介绍 python发展诗 Python下载 1  什么是编程语言: 定义好一套与计算机交互的语法规则,这套规则,就可称为一门编程语言. 我们不懂日语是因为不懂日语的语法规则. 学编程 = 学语法规则 一堆指令组合 => 软件 有多套与计算机的语法规则         600多种 编程语言主要从以下几个角度为进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,我们一起来看一下. 2  Python介绍: pyt

Github入门级介绍

Github入门级介绍 一.  简介 1.基本功能 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在GitHub,用户可以十分轻易地找到海量的开源代码. 二.  注册 1.  登录 https://github.com/ ,点击右上角的注册按钮,输入自己用户名.邮箱.密码等等. 2.  验证码,需要把一个小狗摆正 3.  选择免费/付费账号 一般选择免费,上传的代码会公开

Django框架介绍 python三大主流web框架之一

一.学习准备 1.下载安装Django(建议安装1.x版本) 方法:终端cmd输入命令:pip install django==1.11.11  然后回车即可 校验是否安装成功:django-admin 二.纯手撸web框架 1.纯手撸web框架 软件开发架构 c/s架构 b/s架构 本质bs也是cs web后端 需求: 1.根据用户输入不同的后缀返回不同的内容 从符合http协议格式的数据中获取用户输入的后缀 不足之处: 1.socket代码是我们自己写的 2.http数据也是我们自己处理的

机器学习经典算法详解及Python实现---朴素贝叶斯分类及其在文本分类、垃圾邮件检测中的应用

摘要: 朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类.总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型:当各特征相关性较小时,朴素贝叶斯分类性能最为良好.另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算.本文详述了朴素贝叶斯分类的统计学

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

原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector machine,简称SVM.通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解. (一)理解SVM基本原理 1,SVM的本质--分类 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些