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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,252评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,576评论 2 59
  • 西汉司马迁所著的《史记》第一篇《五帝本纪》中记载远古传说中被后人尊为帝王的五个部落联盟首领为:黄帝、颛顼(zhuā...
    云风景阅读 6,014评论 0 3
  • 第一次到绍兴博物馆,就想细细品味。六个部分我如今只品读了一半,用了六个半天!明天去长沙,今天先来个总结。 认识了几...
    吕姝焱阅读 1,405评论 2 1
  • ——分析阅读的第二阶段 第一个规则:找出重要单字,透过他们与作者达成共识 (目标:诠释内容与讯息) 世界上没有一本...
    毛小听主题读书阅读 1,513评论 0 0

友情链接更多精彩内容