文章目录

  • 1.课本课后习题
  • 2.视频课后习题
    • (1)自编程实现
    • (2)sklearn形式
    • (3)感知机

1.课本课后习题







2.视频课后习题

(1)自编程实现

# 感知机自编程实现-面向对象
import numpy as np
import matplotlib.pyplot as plt# 构建感知机类
class Myperceptron():# 属性初始化def __init__(self):# 不知道x_train的shapeself.w = Noneself.b = 0self.η = 1# 核心方法实现-随机梯度下降def fit(self,x_train,y):m,n = np.shape(x_train)# w的dim1与x的特征值相对应# x.T:[2,3] w : [1,2]self.w = np.zeros((1,n))i = 0# for 与 while的区别while i < m:# 获取训练集的x,yxi = x_train[i]yi = y[i]# 误判点的特征为:-yi*(w*xi+b) >= 0,如果为误判点,则w、b更新if -1 * yi * (np.dot(self.w,xi.T) + self.b) >= 0:self.w = self.w + self.η * np.dot(yi,xi)self.b = self.b + self.η * yi# 如果为误判点,重头检测i = 0else:i += 1# 当i=m时,while循环结束def draw(x,w,b):# 生产分离超平面的两个点x_new = np.array([[0], [6]])# 公式变形# y_predict = -(w[0]*x_new + b) / w[1]y_predict = -(b + w[0][0] * x_new) / w[0][1]plt.plot(x[:2,0],x[:2,1],'b*',label='1')plt.plot(x[-1,0],x[-1,1],'rx',label='-1')# 绘制分离超平面plt.plot(x_new, y_predict, "b-")# 设置两坐标轴起止值plt.axis([0, 6, 0, 6])# 设置坐标轴标签plt.xlabel('x1')plt.ylabel('x2')# 显示图例plt.legend()# 显示图像plt.show()# 主函数
def main():x_train = np.array([[3,3],[4,3],[1,1]])y = np.array([1,1,-1])# 构建感知机对象,对数据进行训练perceptron = Myperceptron()perceptron.fit(x_train,y)print(perceptron.w)# 结果图像绘制draw(x_train,perceptron.w,perceptron.b)if __name__ == '__main__':main()

(2)sklearn形式

L1正则化:特征值更稀疏
L2正则化:权值更均匀
w,b初始值为0时,w、b均为eta0的整数倍,
误分类点的判定条件为yi(w*xi + b) <= 0,此时eta0的影响为0
所以不同的学习速率对模型学习速度和结果无影响当w,b不为0时,有影响
# sklean实现感知机
import numpy as np
from sklearn.linear_model import Perceptron# 训练数据集
x_train = np.array([[3,3],[4,3],[1,1]])
y = np.array([1,1,-1])perceptron = Perceptron()
perceptron.fit(x_train,y)# attribute
print('w:',perceptron.coef_)
print('b:',perceptron.intercept_)
print('n_iter:',perceptron.n_iter_)# 测试模型预测的准确率
res = perceptron.score(x_train,y)
print('correct rate : %d'%res)
w: [[1. 0.]]
b: [-2.]
n_iter: 9
correct rate : 1

(3)感知机

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

统计学习方法读书笔记4-感知机课后习题相关推荐

  1. 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(m ...

  2. 统计学习方法读书笔记(九)-EM算法及其推广

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 EM算法用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(ex ...

  3. 统计学习方法读书笔记15-逻辑斯蒂回归习题

    文章目录 1.课后习题 2.视频课后习题 1.课后习题 import numpy as np import time import matplotlib.pyplot as plt from mpl_ ...

  4. 统计学习方法 读书笔记(五)

    读书笔记仅供个人学习使用 本文主要参考书籍为<统计学习方法>(李航)第二版 参考 Sunning_001的博客 决策树 决策树的定义 if-then 的理解 条件概率分布的理解 决策树学习 ...

  5. 李航《统计学习方法》AdaBoost算法(课后习题)

    AdaBoost:https://blog.csdn.net/v_JULY_v/article/details/40718799 提升树:https://www.cnblogs.com/daguank ...

  6. 李航《统计学习方法》第四章课后答案链接

    李航<统计学习方法>第四章课后答案链接 本博客转载自:http://blog.csdn.net/xiaoxiao_wen/article/details/54097917

  7. 李航《统计学习方法》第三章课后答案链接

    李航<统计学习方法>第三章课后答案链接 我的天呐竟然木有百度到...是因为太简单了吗...

  8. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  9. 李航《统计学习方法》笔记

    虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书.当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析(目的 ...

  10. 机器学习:《统计学习方法》笔记(一)—— 隐马尔可夫模型

    参考:<统计学习方法>--李航:隐马尔可夫模型--码农场 摘要 介绍隐马尔可夫模型的基本概念.概率计算.学习方法.预测方法等内容. 正文 1. 基本概念 隐马尔可夫模型是关于时序的模型,描 ...

最新文章

  1. Springboot [日志管理LogBack]
  2. VC 下 64bit 整数的显示和读取格式化字串
  3. 《Windows Server 2012 Hyper-V虚拟化管理实践》一第1章 Hyper-V服务器选型
  4. VTK:网格之Subdivision
  5. 计算机办公高级试题,高级办公软件试题及解答
  6. 12个 Linux 中 grep 命令的超级用法实例
  7. StringTokenizer的使用
  8. LeetCode 面试题 03 数组中重复的数字
  9. 生产性企业CO部分月结流程及系统步骤
  10. 使用XAMPP轻松建站(下)
  11. 为什么强烈推荐你使用单表查询?(续篇)
  12. java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
  13. 枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作
  14. 啊,久违的 win7 开机画面!
  15. netty 原理分析
  16. myeclipse10破解补丁激活方法
  17. 邱天计算机,华北电力大学控制与计算机工程学院导师教师师资介绍简介-邱天...
  18. 安卓开发自学技巧!我了解到的面试的一些小内幕!附面试题答案
  19. 汉化python语言编程界面_python设置中文界面实例方法
  20. PCL点云去背景(相减)的方法

热门文章

  1. 通过计划任务使FlashFXP在晚上自动下载备份
  2. java day10【接口、多态】
  3. Linux下禁止使用swap及防止OOM机制导致进程被kill掉
  4. VMware 12PRO安装Mac OS X 10.10.5
  5. solr6.5的分词
  6. 数据库的水平扩展与垂直扩展
  7. $.each(callback)方法
  8. PHP设计模式系列 - 委托模式
  9. maven tomcat eclipse 配置 debug
  10. C# Winform获取路径