美文网首页
统计学习方法第二章习题代码实现

统计学习方法第二章习题代码实现

作者: 梦vctor | 来源:发表于2018-11-09 09:16 被阅读0次
image.png
import os
import sys
from numpy import *
# import numpy as np

# reload(sys)
# sys.setdefaultencoding('utf-8')

#首先将书上的训练集输入
def loadDataset():
    dataSet=[[3,3],[4,3],[1,1]]
    labels=[1,1,-1]
    return dataSet,labels

#定义sign函数
def function_sign(x):
    if(x>=0):
        return 1
    else:
        return -1

#算法主程序
def perception(dataSet,labels):
    # 将数据集转换成矩阵用于计算
    dataMat=mat(dataSet)
    m,n=shape(dataMat)
    #创建与示例维度相同的初始化w
    w=mat(zeros((n,1)))
    b=0
    #当预测结果与实际结果不符时则循环更新w,b
    while([function_sign(i) for i in array(dataMat*w+b)])!=labels:
        for i in range(m):
            if (labels[i]*(dataMat[i]*w+b)<=0):
                w+=labels[i]*dataMat[i].T
                b+=labels[i]
    return w,b

#输出运行结果
dataSet,labels=loadDataset()
w,b=perception(dataSet,labels)
print(w,'\n',b)

输出:

[[1.]
 [1.]] 
 -3

相关文章

网友评论

      本文标题:统计学习方法第二章习题代码实现

      本文链接:https://www.haomeiwen.com/subject/bpdnxqtx.html