《机器学习》课后习题 3.4 选择两个 UCI 数据集,比较 10 折交叉验证法和留 法所估计出的对率回归的错误率.

本文通过使用逻辑回归模型,比较了10折交叉验证与留一法在两个UCI数据集上的表现,展示了不同验证方法对错误率估计的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考了han同学的答案,数据集也可在han同学的github上下载。

3.4 选择两个 UCI 数据集,比较 10 折交叉验证法和留 法所估计出的对率回归的错误率.

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import LeaveOneOut
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score


data_path = r'Transfusion.txt'

data = np.loadtxt(data_path, delimiter=',').astype(int)

X = data[:, :4]
y = data[:, 4]

# 样本数和属性数

m, n = X.shape

# 数据标准化
X = (X - X.mean()) / X.std(0)

# k-10

kfold = KFold(n_splits=10)
# print(kfold)
lr = LogisticRegression(C=2)
# score是准确率数组,cv代表多少折
score = cross_val_score(lr, X, y, cv=kfold)
print('acc of k-10: {}'.format(score.mean()))

# LOO,留一法
# LeaveOneOut() is equivalent to KFold(n_splits=n) and LeavePOut(p=1) where n is the number of samples.
loocv = LeaveOneOut()
# loocv = KFold(m)
score = cross_val_score(lr, X, y, cv=loocv)
print('acc of loo: {}'.format(score.mean()))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值