




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、统计学习法课后习题第章感知机2.1模仿例题2.1,构建从训练数据求解感知机模型的例。例题 2.1 的数据集如下:x = 3 3; 4 3; 1 1;y = 1; 1; -1;感知机的训练过程为:(1)选取初值w和b(2)从训练集中选取数据(3)如果(4)转(2),直到训练集中没有误分类点def training(x,y,eta):sample_count = len(x)feature_count = len(x1)w = np.zeros(feature_count)b = 0;xi=xi,:if (np.dot(w, xi.T) + b)*yi = 0):w = w + eta * yi
2、* xib = b + eta * yiprint(w)print(b)else:i = (i + 1) % sample_countreturn w, bprint(b)感知机训练结果如下:print(b)结果如下:0.1 0.1-0.30000000000000004第三章K近邻算法3.1参照图 3.1,在 维空间中给出实例点,画出 k 为 1 和 2 时的 K 近邻法构成的空间划分,并对其进较,体会 K 值选择与模型复杂度及预测准确率的关系。3.3参照算法 3.3,写出输出为 x 的 K 近邻的算法。在寻找最近邻节点的时候需要维护个”当前最近点“,寻找 K 近邻的时候,就需要维护个”当前
3、 K近邻点集“。先定义个”当前 K 近邻点集“插新点操作:如果”当前 K近邻点集“元素数量于K,那么直接将新点插集合;如果”当前 K近邻点集“元素数量等于K,那么将新节点替换原来集合中最远的节点。1. 在 kd 树中找出包含标点 x 的叶结点:从根结点出发,递归地向下访问树。若标点 x当前维的坐标于切分点的坐标,则移动到左结点,否则移动到右结点,直到结点为叶结点为;2. 如果”当前 K 近邻点集“元素数量于K或者叶节点距离于”当前 K 近邻点集“中最远点距离,那么将叶节点插”当前 K 近邻点集“;3. 递归地向上回退,在每个结点进以下操作:(a) 如果”当前 K 近邻点集“元素数量于K或者当前
4、节点距离于”当前 K 近邻点集“中最远点距离,那么将该节点插”当前 K近邻点集“,(b) 检查另结点对应的区域是否与以标点为球、以标点与于”当前 K近邻点集“中最远点间的距离为半径的超球体相交。如果相交,可能在另个结点对应的区域内存在距标点更近的点,移动到另个结点 . 接着,递归地进最近邻搜索;如果不相交,向上回退;4. 当回退到根结点时,搜索结束,最后的”当前 K 近邻点集“即为 x 的 K 近邻点集。第五章5.1根据表 5.1 所给的训练数据集,利信息增益(C4.5 算法)成决策树。数值字符串更容易处理,所以在学习过程中需要将字符串映射到数值:特征(编号)年龄(0)0青年否1中年是2年有作
5、(1)有的房(2)信贷情况(3)类别否是般否好常好是训练数据集:x = 0,0,0,0,y = 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0;计算数据集D的经验熵法为:计算特征A对数据集D的经验条件熵H(D|A):计算信息增益:其中H(D):param y:return:def (x, y, feature_index):H_A(D):param x:param y:param feature_index:return:ans = 0;return ansdef entropycond(x, y, feature_index):求条件熵 H(D|A):
6、param x: ndarray:param y: ndarray:param feature_index: int, 当前特征下标:return:ans = 0#信息增益:return:if (len(feature_indicies) = 0):counts = np.bincount(y)subset = np.where(x:, feature_number = j)feature_name = , , , 0, 1, 0, 1,0, 1, 1, 0,0, 0, 0, 0,1, 0, 0, 0,1, 0, 0, 1,1, 1, 1, 1,1, 0, 1, 2,1, 0, 1, 2,2,
7、 0, 1, 2,ans = generate(x, y, feature, 0)print(ans)结果如下:leaf: False, feature: , child: leaf: False, feature: , child: leaf: True, output: 0, leaf: True, output: 1, leaf: True, output: 1对应的树结构为:(ps:可以将代码中的信息增益率 换为信息增益,即为例5.3的结果。可以看到C4.5和ID3算法结果略有不同)5.2已知如表 5.2 所的训练数据,试平误差损失准则成个叉回归树。训练数据集:x = 1,2,3,4,
8、5,6,7,8,9,10;y = 4.50,4.75,4.91,5.34,5.80,7.05,7.90,8.23,8.70,9.00;寻找最优切分变量j和最优切分点s的法为:其中,最乘回归树成算法过程如下:在训练数据集所在的输空间中,递归地将每个区域划分为两个区域并决定每个区域上的输出值,构建叉决策树:(1)选择最优切分变量 J 与切分点 s;(2)选定的对 (J,S) 划分区域并决定相应的输出值;(3)继续对两个区域调步骤(1)(2)直满停条件;(4)将输空间划分为 M 个区域成决策树:在具体实现中,停条件可以是区域不可以再分,或者 于某个阈值;y1 = ynp.where(x:, i =
9、value)c1 = np.mean(y1)def fittree(x, y, feature_count, epsilon):if minval epsilon or len(ynp.where(x:, j = xs, j) = 1:treeleft = c1else:treeleft = fittree(xnp.where(x:,j = xs, j), ynp.where(x:,j = xs, j), feature_count, epsilon)if minval s) = 1:treeright = c2else:if _name_ = _main_:x = np.array(1, 2
10、, 3, 4, 5, 6, 7, 8, 9, 10).Ty = np.array(4.50, 4.75, 4.91, 5.34, 5.80, 7.05, 7.90, 8.23, 8.70, 9.00)print(fittree(x, y , 1, 0.2)上述代码中的阈值设置为0.2,获得的结果为feature: 0, value: 5, left: feature: 0, value: 3, left: 4.72, right: 5.57, right: feature: 0, value: 7, left: feature: 0, value: 6, left: 7.05, right也就
11、是:第章逻辑斯谛回归与最熵模型6.2写出逻辑斯谛回归模型学习的梯度下降算法。对于逻辑斯谛模型,条件概率分布如下:令对数似然函数为:对L(w) 求极值,得到w的估计值。 故问题变成以对数似然函数为标函数的最优化化问题,可采梯度上升法进求解。说明: 在逻辑斯蒂回归中,极似然函数与极化经验误差是等价的,根据李航博统计学习法中第章第九页中有两个论断:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最化就等价于极似然估计。当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表时,结构风险最化就等价于最后验概率估计似然函数求偏导:因为要求最似然函数,此处使随机梯度上升法,每次选
12、择个数据点,对w进更新算法流程:(1)选取初值(2)在训练集中选取数据(3)更新w:(4)转2,直到w变化范围在可接受范围内(或者到达指定的迭代次数)。在实现中,采的数据是iris,只保留分类为0-1的数据集,以进分类,为了数据便于展,数据集只取了两个特征。先采sklean实现下:import matplotlib.pyplot as pltX_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 0.3, random_state=0)from sklearn.preprocessing import Stand
13、ardScaler# 数据标准化,使得数据成为个mean0var = 1的标准数据集,数据标准化有利于快速收敛sc = StandardScaler()sc.fit(X_train)X_train_std = sc.transform(X_train)# 训练from sklearn.linear_model import LogisticRegression# Csklean10000,以尽可能的使得罚项的影响变从和经验误差最化接近lr = LogisticRegression(C=10000, random_state=0, solver=sag)lr.fit(X_train_std, y
14、_train)# 测试集上进测试prepro = lr.predict_proba(X_test_std)acc = lr.score(X_test_std,y_test) # 在测试集上的准确率# print(lr.predict_proba(X_test_std) # 查看第个测试样本属于各个类别的概率# 绘图print(w:, lr.coef_)print(b:, ercept_)x_1 = range(-2, 3)plt.show()根据随机梯度下降求极似然函数的法进了实现import matplotlib.pyplot as pltfrom sklearn import
15、datasets4,5,6:return:print(w)i = 0for index in range(trail):wj = wj + alpha * (yi * xi, j - (math.exp(np.dot(w, xi.T) * xi, j)/( 1 + math.exp(np.dot(w, xi.T)print( , str(all_i) , w , str(j) , =, wj)return wy = yy != 2# 数据标准化,使得数据成为个mean0var = 1的标准数据集,数据标准化有利于快速收敛from sklearn.preprocessing import Sta
16、ndardScalerx = sc.transform(x)# Plot also the training pointsplt.figure()plt.scatter(x:, 0, x:, 1, c=y)b = np.ones(len(x)x = np.c_x,bx_1 = range(-2, 3)x_2 = -(x_1 * w0 + w2) / w1plt.plot(x_1, x_2)plt.show()其结果如下:- 对于使sklean的结果:w: 11.42390645 -8.08671991b: 2.39438857直观的显图如下:- 对于实现的结果:参数 0.74843831 -0.69781773 0.00339007直观的显图如下:第七章持向量机7.2已知正例点,负例点:,试求最间隔分离超平和分类决策函数,并在图上画出分离超平、间隔边界及持向量。相对于其他的算法,持向量机的实现实在是太过于复杂,因此此处需要借助scikit-learn.plt.figure()plt.scatter(clf.support_vectors_:, 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级微观经济学知到课后答案智慧树章节测试答案2025年春浙江大学
- 2025年天一大联考海南省高三2月英语试题模拟试题含解析
- 宁夏警官职业学院《外国民族音乐概论》2023-2024学年第一学期期末试卷
- 焦作大学《泰语口语》2023-2024学年第二学期期末试卷
- 江西理工大学《过程装备集成科学与技术》2023-2024学年第二学期期末试卷
- 广东海洋大学《纺织绿色制造》2023-2024学年第二学期期末试卷
- 四川省绵阳市游仙区2025年数学五下期末检测模拟试题含答案
- 上海市格致初级中学2025年高考模拟(4月)英语试题含解析
- 工伤认定风险点和防范措施
- 2025年五氧化二磷行业政策分析:五氧化二磷行业标准规范行业发展
- 高等教育数字化转型心得体会
- 2025年安徽财贸职业学院单招职业技能测试题库及答案1套
- 2025年安徽职业技术学院单招职业技能测试题库及答案1套
- 日式保洁培训课件大全
- 2025年广东省深圳市高考语文一模试卷
- 2025年陕西工商职业学院单招职业技能测试题库学生专用
- 2025年福建省高职单招职业适应性测试题库及答案解析
- 自媒体运营实战教程(抖音版) 课件 第7章 短视频运营-自媒体中级
- 2025时事政治必考题库含参考答案
- 保洁管理安全培训课件
- 小学生药品安全课件视频
评论
0/150
提交评论