李航统计学习方法例2.1实现代码——感知机学习原始形式

###李航统计学习方法例2.1实现代码——感知机学习原始形式

####导入使用模块pandas numpy
import numpy as np
import pandas as pd

###导入数据
data=pd.DataFrame({'x1':[3,4,1],'x2':[3,3,1],'y':[1,1,-1]})

###参数初始化
w=[0,0]
b=0
r=1
interation=100 ###

###定义函数
def ganzhiji(data,w,b,r,interation):
    X=data.iloc[:,:-1].as_matrix()
    Y=data.iloc[:,-1].as_matrix()
    W=np.array(w)
    count=0 ####迭代次数

    while count<=interation:
        correct_count=0
        for i in range(len(X)):
            if Y[i]*(np.dot(W,X[i])+b)<=0:
                W=W+r*Y[i]*X[i];
                b=b+r*Y[i]
                break
            else:
                correct_count+=1
        count+=1
        if correct_count==len(X):
            return  W,b
        else:
            print(count)

[m,n]=ganzhiji(data,w,b,r,interation)
print(m,n)
发布了12 篇原创文章 · 获赞 2 · 访问量 341

猜你喜欢

转载自blog.csdn.net/yuchen_lucky/article/details/102887041