西瓜书(机器学习_周志华)课后题答案

本文探讨了机器学习中交叉验证的方法,如10折交叉验证与留一法,并详细解释了真正例率、假正例率、查全率与查准率等评估指标的概念及其相互关系。

我自己瞎做的、多多交流

 答案:

 

 答案:

采用10折交叉验证,因为取样是随机的,所以获得的结果是50%

如果采用留一法,不管最后留下来是正例还是反例,都会和预测结果不一致,(如果留下正例,预测集中反例占多数,预测结果为反例,反之亦然),所以对错误率进行评估的结果是100%

 答案:

 

 答案:

真正例率:正例中被预测为正例的比例   TP/(TP+FN)

假正例率:假例中被预测为正例的比例  EP/(EP+TN)

查全率(R/召回率):TP/(TP+FN) 也是正例中被预测为正例的比例

查准率(P/):TP/(TP+FP)  正例占所有被预测为正例的比例

真正例率在数值上等于查全率

`百度百科:`查全率与查准率为互逆相关性,查全率一般为60%~70%,查准率约为40%~50%,当查全率超过70%时,若想再提高查全率就必然降低查准率。

先不写了,改天有时间再接着写

 

西瓜第三章课后答案相关信息如下: - 习3.5可Python编程实现线性判别分析,并给出西瓜数据集 3.0α上的结果,同时探讨线性判别分析仅在线性可分数据上能获得理想结果,还可设计改进方法使其用于非线性可分数据 [^1]。 - 当b = 0,x = 1时,sigmoid函数非凸,中二阶导>0 ,还给出了牛顿迭代法的代码示例。代码中,先读取数据集,进行数据处理,然后使用牛顿迭代法更新参数,最后进行可视化展示 [^3]。 ```python import numpy as np import pandas as pd Set = pd.read_csv("data.csv") # 数据集 X = np.array(Set[['密度','含糖率']]) # 标签 Y = np.where(np.array(Set[['好瓜']])=='是',1,0) N,Dy = Y.shape X = np.append(X,np.ones(N).reshape(N,1),axis=1) _,Dx = X.shape X=X.T Y=Y.T Beta = np.random.random(size=(Dx,1)) T = 10 for t in range(T): p1=np.exp(Beta.T@X)/(1+np.exp(Beta.T@X)) f1=(-np.sum(X*(Y-p1),axis=1)).reshape(3,1) f2=(X*p1*(1-p1))@X.T Beta = Beta - np.linalg.inv(f2)@f1 print('t:',t) print('Beta:',Beta) print('p1:',p1) # 可视化 import matplotlib.pyplot as plt plt.scatter(X[0], X[1], s=10, marker='o') plt.xlabel('x0') plt.ylabel('x1') plt.title('Title') for i in range(N): plt.text(X[0][i], X[1][i], "{},{:.3f}".format(Y[0][i],p1[0][i])) x=np.array([0.2,0.9]) a = -Beta[0][0]/Beta[1][0] # 直线斜率 b = -Beta[2][0]/Beta[1][0] # 直线截距 y_line = a * x + b # 直线方程 plt.plot(x, y_line, 'r--') plt.show() ``` - 在以下两种情况下不必考虑偏置项b:一是在f(x)进行归一化处理时消除偏置项,归一化处理包括把数据映射到(0,1)范围内和把有量纲的表达式化为无量纲的表达式等;二是当只需考虑x的取值对y的影响时,就不用考虑偏置项b [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值