统计学习方法训练营第一次作业:感知机

本文探讨了感知机模型,其假设空间为分离超平面w·x + b = 0。复杂度主要由特征数量(维度d)决定。文章介绍了自编程实现感知机及使用sklearn库的perceptron模块,并表达了对进一步完善的期待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感知机模型的假设空间是分离超平面 w·x + b = 0;
模型的复杂度主要体现在x的特征数量,也就是维度d上

使用自编程实现:

import numpy as np
import matplotlib.pyplot as plt

class MyPerceptron:
    def __init(self):
        self.w = None #x维度未知
        self.b = 0
        self.l_rate = 1
        
    def fit(self,X_train,y_train):
        self.w = np.zeros(X_train.shape[1]) #用样本点特征数更新初始值w
        self.b = 0
        self.l_rate = 1#不加这两句报错了AttributeError: 'MyPerceptron' object has no attribute 'b'
        i = 0
        while i < X_train.shape[0]:
            X = X_train[i]
            y = y_train[i]
            if y * (np.dot(self.w, X) + self.b) <= 0:
                self.w = self.w + self.l_rate * np.dot(y,X)
                self.b = self.b + self.l_rate * y
                i = 0
            else:
                i = i + 1

def draw(X, w, b):
    X_new = np.array([[0],[6]])
    y_predict = -b - (w[0] * X_new)/w[1]

    plt.plot(X[:2, 0], X[:2, 1],"g*",label="1")
    plt.plot(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值