• 导入fetch_california_housing 加州房价数据集报错解决(HTTPError: HTTP Error 403: Forbidden)


    报错

    HTTPError                                 Traceback (most recent call last)
    Cell In[3], line 5
          2 from sklearn.datasets import fetch_california_housing
          3 from sklearn.model_selection import train_test_split
    ----> 5 X, Y = fetch_california_housing(return_X_y=True)
          6 print(X.shape), # (20640, 8)
          7 print(Y.shape) #  (20640, )
    
    File ~\miniconda3\lib\site-packages\sklearn\datasets\_california_housing.py:138, in fetch_california_housing(data_home, download_if_missing, return_X_y, as_frame)
        132     raise IOError("Data not found and `download_if_missing` is False")
        134 logger.info(
        135     "Downloading Cal. housing from {} to {}".format(ARCHIVE.url, data_home)
        136 )
    --> 138 archive_path = _fetch_remote(ARCHIVE, dirname=data_home)
        140 with tarfile.open(mode="r:gz", name=archive_path) as f:
        141     cal_housing = np.loadtxt(
        142         f.extractfile("CaliforniaHousing/cal_housing.data"), delimiter=","
        143     )
    
    File ~\miniconda3\lib\site-packages\sklearn\datasets\_base.py:1324, in _fetch_remote(remote, dirname)
       1302 """Helper function to download a remote dataset into path
       1303 
       1304 Fetch a dataset pointed by remote's url, save into path using remote's
       (...)
       1320     Full path of the created file.
       1321 """
       1323 file_path = remote.filename if dirname is None else join(dirname, remote.filename)
    -> 1324 urlretrieve(remote.url, file_path)
       1325 checksum = _sha256(file_path)
       1326 if remote.checksum != checksum:
    
    File ~\miniconda3\lib\urllib\request.py:241, in urlretrieve(url, filename, reporthook, data)
        224 """
        225 Retrieve a URL into a temporary location on disk.
        226 
       (...)
        237 data file as well as the resulting HTTPMessage object.
        238 """
        239 url_type, path = _splittype(url)
    --> 241 with contextlib.closing(urlopen(url, data)) as fp:
        242     headers = fp.info()
        244     # Just return the local path and the "headers" for file://
        245     # URLs. No sense in performing a copy unless requested.
    
    File ~\miniconda3\lib\urllib\request.py:216, in urlopen(url, data, timeout, cafile, capath, cadefault, context)
        214 else:
        215     opener = _opener
    --> 216 return opener.open(url, data, timeout)
    
    File ~\miniconda3\lib\urllib\request.py:525, in OpenerDirector.open(self, fullurl, data, timeout)
        523 for processor in self.process_response.get(protocol, []):
        524     meth = getattr(processor, meth_name)
    --> 525     response = meth(req, response)
        527 return response
    
    File ~\miniconda3\lib\urllib\request.py:634, in HTTPErrorProcessor.http_response(self, request, response)
        631 # According to RFC 2616, "2xx" code indicates that the client's
        632 # request was successfully received, understood, and accepted.
        633 if not (200 <= code < 300):
    --> 634     response = self.parent.error(
        635         'http', request, response, code, msg, hdrs)
        637 return response
    
    File ~\miniconda3\lib\urllib\request.py:563, in OpenerDirector.error(self, proto, *args)
        561 if http_err:
        562     args = (dict, 'default', 'http_error_default') + orig_args
    --> 563     return self._call_chain(*args)
    
    File ~\miniconda3\lib\urllib\request.py:496, in OpenerDirector._call_chain(self, chain, kind, meth_name, *args)
        494 for handler in handlers:
        495     func = getattr(handler, meth_name)
    --> 496     result = func(*args)
        497     if result is not None:
        498         return result
    
    File ~\miniconda3\lib\urllib\request.py:643, in HTTPDefaultErrorHandler.http_error_default(self, req, fp, code, msg, hdrs)
        642 def http_error_default(self, req, fp, code, msg, hdrs):
    --> 643     raise HTTPError(req.full_url, code, msg, hdrs, fp)
    
    HTTPError: HTTP Error 403: Forbidden
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80

    先手动下载数据(https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.tgz)

    在这里插入图片描述
    PS

    1. 报错文件 File ~\miniconda3\lib\site-packages\sklearn\datasets\_california_housing.py:138, in fetch_california_housing(data_home, download_if_missing, return_X_y, as_frame)在这里插入图片描述

    2. 找到文件打开,43行有下载地址在这里插入图片描述

    3. 复制下载后的cal_housing.tgz文件到指定文件夹,无需解压。需要复制到的文件夹需要从代码里获取,获取代码如下:
      在这里插入图片描述在这里插入图片描述
      4.更改 _california_housing.py文件,将def fetch_california_housing()这个函数内的archive_path这段代码更改为如下在这里插入图片描述

    重启 jupyter notebook即可,Windows系统也相同操作

  • 相关阅读:
    轻量封装WebGPU渲染系统示例<22>- 渲染到纹理(RTT)(源码)
    如何搭建搜题公众号
    代码随想录算法训练营Day25|leetcode216 组合总和III,leetcode17 电话号码的字母组合
    Python:练习:编写一个程序,录入一个美元数量(int),然后显示出增加%5税率后的相应金额。
    windows系统应急响应
    【uniapp+vue3/vue2】ksp-cropper高性能图片裁剪工具,详解
    面试考频最高(没有之一)——“谈谈进程和线程的区别?”我来教你如何回答~
    多头注意力机制的计算流、代码解析
    (经典dp) I型 L型 铺盖2*n
    数据结构知识点总结11-(第六章.图)-图的基本概念
  • 原文地址:https://blog.csdn.net/weixin_40959890/article/details/136716621