ML算法实现-python
caicaiatnbu
这个作者很懒,什么都没留下…
展开
-
【温故而知新】PCA
给定数据集:,其中 ,样本均值和样本方差的矩阵表达样本均值: , 这里记样本方差: ...原创 2020-02-10 01:22:00 · 392 阅读 · 0 评论 -
【温故而知新】高斯判别分析(Gaussian Discriminant Analysis)
给定数据集;概率判别模型是直接去求,如下: 高斯判别分析是一种概率生成模型,这里我们需要最大化后验概率估计,对于二分类,高斯判别分析并不是直接去求和的值,而是去比较与的大小关系,而是对联合概率进行建模;由贝叶斯公式可知, 此处,与无关,所以正比于,其中,是posterior,是likehood,是piror。GDA假...原创 2020-02-05 22:41:42 · 736 阅读 · 0 评论 -
【温故而知新】线性判别分析(Linear Discriminant Analysis)
线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的线性分类方法。LDA的基本思想:给定训练数据集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能的接近,不同类样本的投影点尽可能远离;在对新来样本进行分类时,首先将其投影到直线上,再根据投影点的位置来判断样本所属的类别。即:类内小,类间大("高内聚,松耦合")给定数据集,在这里我们将记为...原创 2020-02-04 21:33:37 · 846 阅读 · 0 评论 -
【温故而知新】线性回归(Linear Regression)
本文主要以下几个角度来讲解线性回归:最小二乘法LSE(矩阵表达,几何意义) 概率角度:最小二乘法LSE——noise为Gaussian MLE 正则化: L1——Lasso L2——Ridge 正则化的几何解释最小二乘法定义为:通过给定样本数据集, , ,试图学习到这样的一个模型,使得对于任意的输入特征向量,模型的预测输出能够表示为输入特征向量的线性函数,即满足: ...原创 2020-02-04 00:13:41 · 934 阅读 · 0 评论 -
感知器算法对偶形式实现
感知器算法对偶形式学习策略 详见李航 《统计学习方法》 原始形式与对偶形式二者区别 梯度下降:一次将误分类集合中所有误分类点的梯度下降;----对偶形式 随机梯度下降:随机选取一个误分类点使其梯度下降; ----原始形式 代码如下:class dualPerceptron(object): def __init__...原创 2018-10-10 16:30:34 · 466 阅读 · 0 评论 -
KNN算法实现
前提基础: KNN基本原理,本文参考 李航博士 著《统计学习方法》距离度量方式欧式距离 曼哈顿距离 夹角余弦 切比雪夫距离 马氏距离k值的选择 算法优缺点优点:精度高、对异常值不敏感、无数据输入假定; 缺点:计算复杂度高、空间复杂度高; 适用数据范围:数值型和标称型 代码如下:#encoding=utf-8import pandas as pdim...原创 2018-09-16 18:43:08 · 1301 阅读 · 0 评论 -
逻辑回归原理与实现
前提逻辑回归原理:请参考 https://blog.csdn.net/zjuPeco/article/details/77165974 代码 import numpy as npimport osdef loadData(dir): trainfileList = os.listdir(dir) m = len(trainfileList) dataArray...原创 2018-09-16 18:36:25 · 834 阅读 · 0 评论 -
感知机算法实现
感知机学习策略 详见李航 《统计学习方法》感知机算法的收敛性: 代码如下:import pandas as pdimport randomimport timefrom sklearn.cross_validation import train_test_splitfrom sklearn.metrics import ...原创 2018-09-06 17:44:57 · 1957 阅读 · 0 评论 -
决策树ID3和C4.5算法实现
前提基础: 决策树基本原理,本文参考 李航博士 著《统计学习方法》 熵的概念 信息增益 信息增益比: 可以修正信息增益来划分训练数据集时,存在偏向选择取值较多的特征的问题。可以对此问题进行校正训练集生成决策树的两个关键问题:在构建新节点时候如何选择特征及对应的判定条件? ID3 C4.5 如何停止构建新的节点?or 什么样子的节点被认定为叶...原创 2018-08-28 15:44:20 · 1959 阅读 · 0 评论 -
back propagation算法原理与实现
import numpy as npdef sigmoid(x): return 1. / (1. + np.exp(-x))def dsigmoid(x): return x * (1 - x)class neuralNetwork: def __init__(self, ni, nh, no): self.ni = ni + 1...原创 2018-08-23 15:42:17 · 2288 阅读 · 0 评论 -
backPropagate算法实现
代码如下: import mathimport randomimport stringrandom.seed(0)def rand(a, b): return (b-a)*random.random() + adef makeMatrix(I, J, fill=0.0): m = [] for i in range(I): m.ap...原创 2017-10-26 23:57:53 · 2772 阅读 · 0 评论