机器学习——感知机python可视化实现

这篇博客介绍了参照《统计学习方法》用Python实现感知机算法的过程,包括算法原理、模拟生成线性可分数据、数据可视化及完整代码展示,通过图像展示了训练结果。
摘要由CSDN通过智能技术生成

简介

参考李航老师出版的《统计学习方法》,用python实现感知机学习的算法

感知机算法

这里贴书中介绍的算法原始形式:
这里写图片描述
具体的推导和逻辑理解可以查看书籍或者网上的其它博客。

感知机算法代码实现

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

def PLA_train(dataSet,plot = False):
    numLines = dataSet.shape[0]
    numFeatures = dataSet.shape[1]
    #模型初始化
    w = np.ones((1, numFeatures-1))
    b = 0.1
    k = 1
    i = 0
    #用梯度下降方法,逐渐调整w和b的值
    while i<numLines:
        if dataSet[i][-1] * (np.sum(w * dataSet[i,0:-1],)+ b) <0:   #y[i](w*x[i]+b)<0
            w = w + k*dataSet[i][-1] * dataSet[i,0:-1]  #w = w + k*y[i]
            b = b + k*dataSet[i][-1]    # b = b + k*y[i]
            i =0
        else:
            i +=1

    return w, b

为了测试该算法,这里简单模拟生成数据进行测试。假设生成的数据都是线性可分的,那么只需要在坐标轴上随机生成大量的数据点,在用一条标准线进行分类。然后用这些分类的数据进行训练,查看训练出的模型与标准线的差距。

模拟生成已分类数据

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值