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

简介

参考李航老师出版的《统计学习方法》,用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
  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值