统计学习方法 感知机模型

# 统计学习方法第二章感知机例题
import numpy as np;
import matplotlib.pyplot as plt

#样本数据
sample_x = np.array([[3,3],[4,3],[1,1]])
sample_y = np.array([1,1,-1])

#为分类器设置初始参数
w = np.array([0,0])
b = 0
Eta = 1 #学习率

#进行迭代
for i in range(0,100):
    flag = -1
    num = -1
    for j in range(len(sample_x)):
        if sample_y[j]!=np.sign(np.dot(w,sample_x[0])+b):
            num = j
            break
    if num == -1:            #一开始设置的初始参数既可以完成对样本的分类
        break
    w = w + Eta*sample_x[num]*sample_y[num]
    b = b +Eta*sample_y[num]
    
#绘制分类结果
x_label = [0,8]
y_label = [0,8]

for i in range(len(x_label)):
    y_label[i] = (-w[0]*x_label[i]-b)/w[1]
    #print(y_label[i])
    
plt.plot(x_label, y_label)
print("w = ",w,"and  b = ",b)
for i in range (len(sample_x)):
    if sample_y[i] == -1:
        plt.plot(sample_x[i][0],sample_x[i][1],'ro')
    if sample_y[i] == 1:
        plt.plot(sample_x[i][0],sample_x[i][1],'bo')

        
    

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值