基于《Python机器学习》学习笔记-感知器学习

感知器算法是一个简单的二分算法,相当于signoid函数的应用?
具体原理参考下文:感知器学习

以下代码来自书中2.2节,付我的注释理解:

1. 定义感知算法

eta:即 η \eta η ,学习率
n_iter: 初始迭代次数
random_state:随机生成的权重

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap


class Perceptron(object):
    def __init__(self, eta=0.01, n_iter=50, random_state=1):
    """初始化,为学习率、迭代次数和权重赋初值"""
        self.eta = eta
        self.n_iter = n_iter
        self.random_state = random_state

    def fit(self, X, y):
        rgen = np.random.RandomState(self.random_state)
        # 伪随机数生成,产生一个随机状态种子
    	#rdm = numpy.random.RandomState(seed=None),seed应该是种子编号,跟生成随机数没有关系,例如1号种子,2号种子等等。
    	rdm = numpy.random.RandomState(seed=1)
        self.w_ = rgen.normal(loc=0.0, scale=0.01, size=1 + X.shape[1])
        #0为均值,0.01为标准差的正态分布,规模是X的列数(样品特征数)+1 加一是因为有一个偏置
        self.errors_ = []

        for _ in range(self.n_iter):#表示即将进行n_iter次循环,n_iter已经设定好了是训练次数
            errors = 0
            for xi, target in zip(X, y):
            #zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。
            #xi表示一个数组,这
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值