博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[学习笔记]人工智能-感知器分类算法
阅读量:4146 次
发布时间:2019-05-25

本文共 1711 字,大约阅读时间需要 5 分钟。

感知器分类算法

学习笔记来源

1.算法框架

很喜欢这个图

算法框架
机器学习就是不断更新权重和阈值的过程

2.感知器算法适用范围

感知器算法适用于线性分割

感知器算法适用范围

3.算法步骤

算法步骤

3.1 权重向量初始化为 0

步调函数和阈值

权重向量W,训练样本X
步调函数和阈值
其中W(0)是阈值的取负数,X(0) 初值 1
W(1)….W(x)初值设置为0

[公式]Z = w0 * 1 + W1*X1 + ….+ Wn * Xn

# 神经元        def net_input(self, x):            '''            [公式]Z = w0 * 1 + W1*X1 + ....+ Wn * Xn             '''            return np.dot(x, self.w_[1:]) + self.w_[0]            pass

初始化权重向量

--------------------------------------------------    '''    fit 输入训练数据,培训神经元    x 表示 输入样本向量    y 表示样本分类    x:shape[n_samples, n_features]    x:[[1,2,3], [4,5,6]]    n_samples 向量个数 2    n_features 向量中的神经元个数 3    y:[1, -1],1对应[1,2,3], -1对应[4,5,6]    '''    def fit(self, x, y):        # 初始化权重向量        # x:[[1,2,3], [4,5,6]] 得 x.shape[1] = 2,+1 w0 步调函数的阈值        self.w_ = np.zeros(1 + x.shape[1])        self.errors_ = []--------------------------------------------------

预测函数

# 预测函数        def predict(self, x):            if self.net_input(x) >= 0.0:                np.where(1)            else:                np.where(-1)            pass

3.2 训练样本输入感知器

权重更新算法

学习率需要往往需要根据经验和场景自己设置。

权重更新算法

# 训练次数        for _ in range(self.n_iter):            errors = 0            '''            x:[[1,2,3], [4,5,6]]            y:[1, -1]            zip(x, y) = [[1,2,3, 1], [4, 5, 6, -1]]            '''            for xi, target in zip(x, y):                '''                Ps:公式 = 学习率 * (输入样本的正确分类 - 预测感知样本的分类) * xi                 '''                update = self.eta * (target - self.predict(xi))                '''                xi 是一个向量                update * xi 等价于                [∇w(1) = x[1] * update]                w_[1:] 忽略掉第  0 个元素,从第 1 个元素开始                '''                self.w_[1:] += update * xi

3.2 更新权重向量

权重和阈值更新示例

权重更新示例

你可能感兴趣的文章
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>
java 设计模式-职责型模式
查看>>
构造型模式
查看>>
svn out of date 无法更新到最新版本
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
1062 Talent and Virtue (25 分)
查看>>
1061 Dating (20 分)
查看>>
1060 Are They Equal (25 分)
查看>>
83. Remove Duplicates from Sorted List(easy)
查看>>
88. Merge Sorted Array(easy)
查看>>