-
Numpy-01-Overview
NumPy
NumPy 是使用Python进行科学计算的基础包。
它包含其他内容:
一个强大的N维数组对象
复杂的(广播)功能
用于集成C / C ++和Fortran代码的工具
有用的线性代数,傅里叶变换和随机数功能
除了明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。
可以定义任意数据类型。
这使NumPy能够无缝快速地与各种数据库集成。
基础环境
相...
2019-04-16 02:55:13 |
Python
-
老马学机器学习-09-KNN 算法详解及 python 实现
什么是 k 近邻算法?
k最近邻(k-Nearest Neighbor,kNN)分类算法是一个比较成熟也是最简单的机器学习(Machine Learning)算法之一。
该方法的思路是:
如果一个样本在特征空间中与k个实例最为相似(即特征空间中最邻近),那么这k个实例中大多数属于哪个类别,则该样本也属于这个类别。
其中,计算样本与其他实例的相似性一般采用距离衡量法。
离得越近越相似...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-08-感知机算法详解及 python 实现
回顾
如果损失函数为误分类点个数,则该损失函数不是w和b的连续可导函数,不利于优化。
本节来看一下书中提到的超平面的概念实现。
感知机
感知机(perceptron) 是二类分类的线性分类模型, 其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。
感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型、感知机学习旨在求出将训练数据进行线性划分的分...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-08-感知机算法对偶算法
回顾
上一节,我们学习了感知机算法的基本实现。
但是,如果数据不是线性可分,即找不到一条直线能够将所有的正负样本完全分类正确,这种情况下,似乎 PLA 会永远更新迭代下去,却找不到正确的分类线。
对于线性不可分的情况,该如何使用PLA算法呢?
Pocket PLA 是什么?
首先,我们来看一下线性不可分的例子:
读取数据
实现如下:
import numpy as np
im...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-06-感知机算法 PLA 原理及源码实现详解
感知机
PLA 全称是 Perceptron Linear Algorithm,即线性感知机算法,属于一种最简单的感知机(Perceptron)模型。
感知机模型是机器学习二分类问题中的一个非常简单的模型。
核心思想
它的思想很简单,就是在一个二维空间中寻找一条直线将红点和蓝点分开(图1),类比到高维空间中,感知机模型尝试寻找一个超平面,将所有二元类别分开(图2)。
不可分...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-06-PLA
序章
机器学习的入门经典书籍有《机器学习》(西瓜书)和《统计学习方法》。
此处老马优先选择《统计学习方法》,因为基于概率的部分更加符合人的直觉,我们把神经网络部分放在统计算法之后。
当然,两本书有很多重合的地方,我们可以交叉学习。
所有理论篇前人已经总结的很好了,理论系列只做摘录,不作为原创。
四种学习形式
训练深度学习网络的方式主要有四种:监督、无监督、半监督和强化学习。
...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-04-java 类似于 pandas 的开源库 Joinery
Joinery
Joinery 是遵循Pandas或R数据帧精神的数据帧实现。
快速开始
maven 引入
<dependency>
<groupId>joinery</groupId>
<artifactId>joinery-dataframe</artifactId>
<version>1.9&l...
2019-04-16 02:55:13 |
ML
-
老马学机器学习-04-java 类似于 numpy 的开源库 ND4j 简介
序言
API 有一个非常强大之处在于,是完全可以跨语言的。
numpy 工具强大到令人赞叹,那么 java 有没有类似的开源库呢?
答案是有的。
numpy 对应就是 ND4j。
ND4j
ND4J 是Java编写的开源、分布式深度学习项目,由总部位于旧金山的商业智能和企业软件公司Skymind牵头开发。
团队成员包括数据专家、深度学习专家、Java程序员和具有一定感知力的机器...
2019-04-16 02:55:13 |
ML