前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >李航《统计学习方法》感知机学习算法实现

李航《统计学习方法》感知机学习算法实现

作者头像
Coggle数据科学
发布2019-09-12 17:40:59
4680
发布2019-09-12 17:40:59
举报
文章被收录于专栏:Coggle数据科学Coggle数据科学

感知机学习算法的初始形式

Python代码

代码语言:javascript
复制
import numpy as np

def Train(X_train, Y_train):
    #获取维度参数
    m, n = np.shape(X_train)
    #初始化w,b
    w = np.zeros((n, 1))
    b = 0

    while True:
        count = m     #统计修改次数,若没有变化,则退出while语句
        for i in range(m):
            result = Y_train[i]*(np.dot(X_train[i], w) + b)
            if result <= 0:           #计算yi(w*xi+b)
                count -= 1
                #更新w,b
                for j in range(n):
                    w[j] = w[j] + Y_train[i]*X_train[i][j]
                b = b + Y_train[i]

                print("w:(",w,")","b:",b)
                break

        if count== m:
            break
    return w,b

def main():
    X_train = np.array(([3, 3], [4,3], [1,1]))
    Y_train = np.array(([1,1,-1]))
    print(Train(X_train, Y_train))

if __name__ == '__main__':
    main()

最后输出结果:

代码语言:javascript
复制
w:( [[ 3.]
 [ 3.]] ) b: 1
w:( [[ 2.]
 [ 2.]] ) b: 0
w:( [[ 1.]
 [ 1.]] ) b: -1
w:( [[ 0.]
 [ 0.]] ) b: -2
w:( [[ 3.]
 [ 3.]] ) b: -1
w:( [[ 2.]
 [ 2.]] ) b: -2
w:( [[ 1.]
 [ 1.]] ) b: -3
(array([[ 1.],
       [ 1.]]), -3)
与统计学习方法中结果一致
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 感知机学习算法的初始形式
  • Python代码
  • 最后输出结果:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档