You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Jupyter Lab中运行加州住房数据集随机森林回归代码时遭遇SSL证书验证失败错误

解决Scikit-learn获取加州住房数据集时的SSL证书验证失败问题

嘿,我之前也碰到过一模一样的问题!这个错误是因为Scikit-learn在自动下载数据集时,你的本地环境没办法验证SSL证书导致的。下面给你几个实用的解决办法,还有个代码小细节要提醒你:

方法1:临时跳过SSL验证(快速测试用)

在代码最开头加上这几行,让Python暂时忽略SSL证书验证:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

把这段代码放在from sklearn.datasets import fetch_california_housing之前,再运行原代码就能正常下载数据集了。不过这只是临时方案,适合快速验证代码逻辑,不建议在生产环境中使用。

方法2:手动下载数据集并本地加载

如果不想关闭SSL验证,你可以手动下载数据集后从本地加载:

  1. 找到加州住房数据集的官方下载源,手动下载california_housing.npz文件到本地。
  2. 修改代码,替换数据集加载部分:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error

# 替换成你保存文件的实际路径
data = np.load('/Users/xxx/Downloads/california_housing.npz')
X = data['data']
y = data['target']

# 后续训练代码保持不变
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
rf_reg = RandomForestRegressor(random_state=42)
rf_reg.fit(X_train, y_train)
y_pred = rf_reg.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print(rmse)  # 这里要注意!你原代码里写的是print(rms),是笔误,得改成rmse

方法3:更新本地SSL证书(长期解决方案)

如果是因为本地证书过期或缺失导致的问题,更新证书就能彻底解决:

  • Windows:更新你的Python版本(新版本Python自带更新后的证书),或者手动安装官方根证书包。
  • macOS:打开终端,运行对应Python版本的证书安装脚本,比如/Applications/Python\ 3.10/Install\ Certificates.command(把3.10换成你实际的Python版本号)。
  • Linux:通过包管理器重新安装证书,比如Ubuntu/Debian运行sudo apt-get install --reinstall ca-certificates,CentOS/RHEL运行sudo yum reinstall ca-certificates。

另外一定要注意,你原代码最后一行的print(rms)是笔误,变量名是rmse,不改的话还会报NameError哦!

内容的提问来源于stack exchange,提问作者omersimsir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 11:19:05