Anacondaに同梱されているsklearnのboston datasetsは、sklearn 1.2からドロップされた。
よってURLから読み込む必要がある。
以下は、sklearn 1.2以上でも同様にboston datasetsをpandasのDataFrameに変換するコードである。
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, :3]])
target = raw_df.values[1::2, 2]
df = pd.read_csv(
filepath_or_buffer="http://lib.stat.cmu.edu/datasets/boston",
delim_whitespace=True,
skiprows=21,
header=None,
)
columns = [
'CRIM',
'ZN',
'INDUS',
'CHAS',
'NOX',
'RM',
'AGE',
'DIS',
'RAD',
'TAX',
'PTRATIO',
'B',
'LSTAT',
'MEDV',
]
#Flatten all the values into a single long list and remove the nulls
values_w_nulls = df.values.flatten()
all_values = values_w_nulls[~np.isnan(values_w_nulls)]
#Reshape the values to have 14 columns and make a new df out of them
df = pd.DataFrame(
data = all_values.reshape(-1, len(columns)),
columns = columns,
)
df["PRICE"]=target
print(df)
上記はsklearnのエラーメッセージおよび以下のStackOverflowの記事を参考にした。
・load Boston dataset with pandas
https://stackoverflow.com/questions/73408768/load-boston-dataset-with-pandas