统计学习方法 李航 第二章习题
2017-12-12 02:34
232 查看
推荐一下个人博客
2.1Minsky和Papert指出:感知机因为是线性模型,所以不能表示复杂的函数,如异或。验证感知机为什么不能表示异或
明显可知异或不具有线性可分性,由感知机定义可知,感知机不能表示异或。2.2模仿例题2.1,构建从训练数据集求感知机模型的例子
import numpy as np import matplotlib.pyplot as plt class showPicture: def __init__(self,data,w,b): self.b = b self.w = w plt.figure(1) plt.title('Plot 1', size=14) plt.xlabel('x-axis', size=14) plt.ylabel('y-axis', size=14) xData = np.linspace(0, 5, 100) yData = self.expression(xData) plt.plot(xData, yData, color='r', label='y1 data') plt.scatter(data[0][0],data[0][1],s=50) plt.scatter(data[1][0],data[1][1],s=50) plt.scatter(data[2][0],data[2][1],marker='x',s=50,) plt.savefig('2d.png',dpi=75) def expression(self,x): y = (-self.b - self.w[0]*x)/self.w[1] return y def show(self): plt.show() class perceptron: def __init__(self,x,y,a=1): self.x = x self.y = y self.w = np.zeros((x.shape[1],1)) self.b = 0 self.a = 1 def sign(self,w,b,x): result = 0 y = np.dot(x,w)+b return int(y) def train(self): flag = True length = len(self.x) while flag: count = 0 for i in range(length): tmpY = self.sign(self.w,self.b,self.x[i,:]) if tmpY*self.y[i]<=0: tmp = self.y[i]*self.a*self.x[i,:] tmp = tmp.reshape(self.w.shape) self.w = tmp +self.w self.b = self.b + self.y[i] count +=1 if count == 0: flag = False return self.w,self.b
2.3证明:样本集线性可分的充要条件是正实例点集所构成的凸壳和负实例点集构成的凸壳不相交
![](http://home.ustc.edu.cn/~sl9292/统计学习方法第二章.jpg)
相关文章推荐
- 李航 统计学习方法 第一章 课后 习题 答案
- 李航—统计学习方法第二章课后答案
- 统计学习方法 李航 第一章习题
- 李航 统计学习方法 第五章 决策树 课后 习题 答案
- 李航 统计学习方法 第一章 课后 习题 答案
- 李航统计学习方法习题5.1
- 统计学习方法李航---第一章
- 李航统计学习方法-K邻近法
- 李航第二章课后习题
- 机器学习系列笔记1:《统计学习》李航博士 第一章 统计学习方法概论
- 统计学习方法 李航---第11章 条件随机场
- 《统计学习方法,李航》:11、条件随机场
- 李航 统计学习方法第十章 HMM 答案
- 李航统计学习方法-朴素贝叶斯法
- 统计学习方法-李航(第8章 提升方法笔记)
- 统计学习方法 李航---第12章 统计学习方法总结
- 统计学习方法 李航---第1章 统计学习方法概论
- 李航—统计学习方法第四章课后答案
- 李航 统计学习方法 例3.2 构造平衡kd数
- 统计学习方法 李航---第5章 决策树