文章目录

  • 感知机模型:
  • 感知机模型的随机梯度下降:
  • 感知机模型的算法描述:
  • 感知机的代码实现:

感知机模型:

寻找一个超平面使数据集线性可分,寻找超平面的过程可以转化为最小化一个损失函数的过程:

如何的来的?二元分类,y = +1使w⋅xi+b>0, y = -1使w⋅xi+b<0。

注意:需要强调的是,|w⋅xi+b|所描述的“相对距离”和我们直观上的“欧氏距离”或说“几何距离”是不一样的(事实上它们之间相差了一个∥w∥)。

感知机模型的随机梯度下降:

感知机模型的算法描述:

简单描述为:利用分错的点更新参数w和b,直到没有分错的点位置。
怎么选取分错的点,要么随机选取,要么选择分错的样本里面权重最大的点。

            # 打乱标号_indices = np.random.permutation(len(y))# 取分错最严重的标号,没有样本权重,取打乱后第一个分错的标号_idx = _indices[np.argmax(_err[_indices])]

感知机的代码实现:

# -*- coding: utf-8 -*-import numpy as np
from Util.Bases import ClassifierBaseclass Perceptron(ClassifierBase):def __init__(self):super(Perceptron,self).__init__()self._w = Noneself._b = Nonedef fir(self, x, y, sample_weight=None, lr = 0.01,epoch = 10**6):x = np.atleast_2d(x)y = np.array(y)if sample_weight is None:sample_weight = np.ones(len(y))else:# 这里的sample_weight为样本个数sample_weight = np.array(sample_weight) * len(y)# 初始化w,bself._w = np.zeros(x.shape[1])self._b = 0# 训练for _ in range(epoch):# 得到预测值y_pred = self.predict(x)# 得到分错的向量:[样本] = 每个样本分错的权重,未分错为0_err = (y_pred != y) * sample_weight# 打乱标号_indices = np.random.permutation(len(y))# 取分错最严重的标号,没有样本权重,取打乱后第一个分错的标号_idx = _indices[np.argmax(_err[_indices])]# 都没有分错时,取得时分对了的标号,这是样本全部分对了,退出if y_pred[_idx] == y[_idx]:return# 根据寻去的最大分错的方向yi,对应梯度lr*yi*xi_delta = lr * y[_idx] *sample_weight[_idx]self._w += _delta*x[_idx]y += _deltadef predict(self, x, get_raw_result = False):# np.sum相当于点乘的计算rs = np.sum(self._w *x,axis=1) + self._bif not get_raw_result:return np.sign(rs)return rs

机器学习:从感知机模型体会随机梯度下降相关推荐

  1. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...

    机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...

  2. 深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)

    深度学习(30)随机梯度下降八: 多层感知机梯度(反向传播算法) 1. 多层感知机模型 2. 多层感知机梯度 3. 传播规律小结 tens Recap Chain Rule Multi-output ...

  3. 机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)...

    本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有 ...

  4. 机器学习:SVM、软间隔、随机梯度下降SVM线性算法

    文章目录 SVM目标函数 SVM目标函数推导 函数间隔: 几何间隔: 软间隔.松弛 HingeLoss和软间隔 随机梯度下降算法 线性SVM的算法描述: 线性SVM算法实现: SVM目标函数 SVM目 ...

  5. 深度学习(28)随机梯度下降六: 多输出感知机梯度

    深度学习(28)随机梯度下降六: 多输出感知机梯度 1. Multi-output Perceptron 2. Derivative 3. 代码 Perceptron 单输出感知机梯度 ∂E∂wj0= ...

  6. 深度学习(27)随机梯度下降五: 单输出感知机梯度

    深度学习(27)随机梯度下降五: 单输出感知机梯度 1. Perceptrnon with Sigmoid + MSE 2. Derivative 3. 代码 Recap y=XW+by=XW+by= ...

  7. ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介、常用方法、案例应用之详细攻略

    ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介.常用方法.案例应用之详细攻略 目录 ...

  8. 机器学习:随机梯度下降(SGD)与梯度下降(GD)的区别与代码实现。

    机器学习:随机梯度下降(SGD)与梯度下降(GD)的区别与代码实现. 梯度下降法(GD) 随即梯度下降(SGD) 代码实现 如果想细致的了解:-> 梯度下降法 梯度下降法(GD) 假设函数fx, ...

  9. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降

    Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...

最新文章

  1. Android事件机制
  2. lvs和keepalives
  3. C语言两个日期比大小,C语言小程序 如何判断两个日期之差
  4. 【Swift学习】Swift编程之旅(一)
  5. 一起来啃书——PHP看书
  6. 人类一败涂地电脑版_iOS账号分享 |人类一败涂地 我们继续相爱相杀,PC大火游戏移植!...
  7. cad填充图案乱理石_CAD绘图,缺少填充图案怎么办?900多种自定义图案可解燃眉之急...
  8. X79双cpu linux,Sandy Bridge-E处理器、X79芯片组详尽官方规格
  9. B站视频下载及本地文件名修正
  10. 正确使用 CDN 让你更好规避安全风险
  11. 【视频】离职创业感悟
  12. simulink反差表
  13. 数据结构算法学习 之 红黑树
  14. word/exce转lPDF乱码(思源字体)
  15. 9款高质量学习软件,原来学霸都是这么炼成的!
  16. 美国 计算机科学专业硕士 就业,美国硕士留学:就业最好及最差的硕士学位
  17. Activiti6--入门学习--结束事件
  18. 机构数据总打架,微博终于把手机市场的事儿说清楚了
  19. MATLAB App Designer入门实战(三)
  20. 某校2019专硕编程题-简易计算器

热门文章

  1. centos7重新加载服务的命令_Centos7 常用防火墙操作命令
  2. socket 获取回传信息_Luat系列官方教程5:Socket代码详解
  3. npm依赖管理java_探讨npm依赖管理之peerDependencies
  4. hca卡 linux 查看_将Linux装入U盘随身带走!Awesome!
  5. 决策树模型回归可视化分析_【时间序列分析】在论文中用向量自回归(VAR)模型时应注意哪些问题?...
  6. 【ruoyi若依】echarts图表跑版
  7. Tomcat9 (catalina.bat)控制台日志乱码
  8. geth JavaScript Console
  9. JAVA抽象类为什么可以有构造_抽象类为什么可以有构造函数?- Constructor of an abstract class in C#(转载)...
  10. react 文件 md5_从零配置webpack 4+react脚手架(二)