from sklearn.datasets import load_boston
data = load_boston()
报错
ImportError Traceback (most recent call last)
Cell In[21], line 1
----> 1 from sklearn.datasets import load_boston
2 #from sklearn.datasets import fetch_california_housing as load_boston
3 from sklearn.model_selection import train_test_split
File E:\Anaconda3\envs\anaPython38\lib\site-packages\sklearn\datasets\__init__.py:157, in __getattr__(name)
108 if name == "load_boston":
109 msg = textwrap.dedent("""
110 `load_boston` has been removed from scikit-learn since version 1.2.
111
(...)
155 <https://www.researchgate.net/publication/4974606_Hedonic_housing_prices_and_the_demand_for_clean_air>
156 """)
--> 157 raise ImportError(msg)
158 try:
159 return globals()[name]
原因在异常里很清楚:
ImportError:
`load_boston` has been removed from scikit-learn since version 1.2.
The Boston housing prices dataset has an ethical problem: as
investigated in [1], the authors of this dataset engineered a
non-invertible variable "B" assuming that racial self-segregation had a
positive impact on house prices [2]. Furthermore the goal of the
research that led to the creation of this dataset was to study the
impact of air quality but it did not give adequate demonstration of the
validity of this assumption.
The scikit-learn maintainers therefore strongly discourage the use of
this dataset unless the purpose of the code is to study and educate
about ethical issues in data science and machine learning.
In this special case, you can fetch the dataset from the original
source::
import pandas as pd
import numpy as np
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]
Alternative datasets include the California housing dataset and the
Ames housing dataset. You can load the datasets as follows::
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
for the California housing dataset and::
from sklearn.datasets import fetch_openml
housing = fetch_openml(name="house_prices", as_frame=True)
for the Ames housing dataset.
[1] M Carlisle.
"Racist data destruction?"
<https://medium.com/@docintangible/racist-data-destruction-113e3eff54a8>
[2] Harrison Jr, David, and Daniel L. Rubinfeld.
"Hedonic housing prices and the demand for clean air."
Journal of environmental economics and management 5.1 (1978): 81-102.
<https://www.researchgate.net/publication/4974606_Hedonic_housing_prices_and_the_demand_for_clean_air>
总结:
涉及伦理问题删除了该数据,需要使用该数据集 fetch_california_housing()
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
数据集需要单独下载,可以私信我,放不了链接。