scikit-learn机器学习模块(下)

本文介绍了scikit-learn中的交叉验证技术,包括简单交叉验证和K折交叉验证,并展示了如何使用K折交叉验证进行超参数优化,特别是针对岭回归和Lasso回归的alpha值选择。此外,还探讨了非监督学习中的降维和可视化,特别是PCA和TSNE方法在高维数据可视化中的应用。最后,通过PCA预处理和SVM模型展示了特征脸的识别过程,以及如何利用Pipelining将多个模型串联起来。

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

交叉验证

一般只将70%和30%分为训练集和测试集的方法称为简单交叉验证,而另一种K折交叉验证是指将数据分为K份,轮流以其中K-1份作为训练,另一份作为测试集,取平均的泛化误差最小的模型,具体为:

clf = KNeighborsClassifier()

 
 
 >>> from sklearn.model_selection import cross_val_score

 
 
 >>> cross_val_score(clf, X, y, cv=5)
或者可以利用cv = ShuffleSplit(n_splits = 5)再将CV传入
将会返回含有5个泛化误差的列表。


使用交叉验证进行超参数优化

对于正则化的线性模型,有岭回归(L2正则)和Lasso回归(L1正则),使用时

from sklearn.linear_model import Ridge, Lasso
model = Ridge()//使用默认的alpha参数,也可以提供alpha值

cross_val_score(model, X, y).mean()得到交叉验证的平均泛化误差。


当我们提供了一系列的alpha值时,可以利用GridSearchCV函数自动寻找最优的alpha值:

from sklearn.grid_search import GridSearchCV
gscv = GridSearchCV(Model(), dict(alpha=alphas), cv=3).fit(X, y)

scikit-learn也提供内嵌CV的模型,如

from sklearn.linear_model import RidgeCV, LassoCV
model = RidgeCV(alphas=alphas,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值