博客主页瑕疵的CSDN主页 Gitee主页瑕疵的gitee主页⏩ 文章专栏《热点资讯》被 RidgeCV 的 cv 参数坑到凌晨三点记录个解法目录昨晚写回归模型想用 RidgeCV 做交叉验证调参。代码写得贼顺手fromsklearn.linear_modelimportRidgeCVmodelRidgeCV(cv5)# 以为字符串也能转整数跑起来直接报错TypeError: str object cannot be interpreted as an integer我当场懵了。cv 不能是字符串我之前在 KFold 里用过 n_splits5不KFold 的 n_splits 也要求整数。这特么是 scikit-learn 的硬性规则。核心根源RidgeCV 的 cv 参数必须是整数表示折叠数或 CrossValidator 对象。scikit-learn 内部用check_cv函数验证类型字符串无法转换。我手滑写了5以为能自动转结果直接报类型错误。别想当然参数类型是死的。解决代码【错误示范】# 错误cv 传了字符串 5导致 TypeErrorfromsklearn.linear_modelimportRidgeCVmodelRidgeCV(cv5)# 这行会崩【正确姿势】# 正确cv 传整数 5表示5折交叉验证fromsklearn.linear_modelimportRidgeCVmodelRidgeCV(cv5)# 一行搞定测试过cv5正常运行cv5一定报错。别在 cv 上玩字符串老老实实传整数。避坑总结参数类型别猜scikit-learn 参数严格到变态。整数就是整数字符串就是字符串。报错先看类型TypeError基本都是类型不对。直接检查参数类型。IDE 要用好PyCharm 会标出类型错误写代码前先看提示。文档别跳过RidgeCV 的 cv 参数说明里写得清清楚楚int or cross-validator。我踩过这坑现在写下来。下次再写 cv 参数直接写数字别手滑。附跑通的代码截图证明没坑