![](https://maxigundan.com/deeplearning/wp-content/uploads/2020/02/Hirishi_icon.png)
価格予測のサンプルでよく使われるBoston Housingデータ。
こちらは、データをCSVとして保存できます。
はじめに
Keras のload_dataで読み込んだデータを可視化する方法。
(1) CIFAR10、CIFAR100 画像への変換方法
(2) MNIST、Fashin-MNIST 画像への変換方法
(3) IMDB Review、Reuters Topics テキストへの変換方法
(4) Boston Housing data のcsvへの変換方法
この記事では「(4) Boston Housing data のcsvへの変換方法」について書いています。
ソースコード一式
こちらに(1)~(4) すべてのコードを一括したファイルをアップしています。
コード見たほうが早いわーな方はどうぞ。
Boston Housing dataのCSV化保存
from tensorflow.keras.datasets import boston_housing
# Load data from keras API
(x_train, y_train), (x_test, y_test) = boston_housing.load_data()
まず、load_data()で、train, testにデータを読み込みます。
この時点で、
x_train, x_testには、13項目の入力値、
y_train, y_testには、1項目の出力値が格納されています。
以下のサイトに説明があります。
具体的には、
入力項目が以下のとおり。
項目名 | 意味 |
CRIM | 犯罪発生率 |
ZN |
25000平方フィート以上の住宅区間の割合
|
INDUS |
非小売業の土地面積の割合
|
CHAS |
チャールズ川沿いかどうか(1:Yes/0:No)
|
NOX | 窒素感化物濃度 |
RM | 平均部屋数 |
AGE |
1940年より前の家屋の割合
|
DIS |
ボストンの主要5圏までの距離
|
RAD |
幹線道路へのアクセス指数
|
TAX |
10000ドルあたりの所得税率
|
PTRATIO |
教師あたりの生徒の数
|
B |
アフリカ系アメリカ人居住者の割合
|
LSTAT | 低所得者の割合 |
出力は、以下のとおりです。
項目名 | 意味 |
MEDV | 住宅価格の中央値 |
これをまとめて、もとのcsvデータに復元します。
OUT_DIR = 'boston_housing'
os.makedirs(OUT_DIR, exist_ok=True)
# define feature names from https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html
feature_list = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']
まず保存用ディレクトリを作成。
そして、13項目+MEDVをまとめてfeature_listとして定義します。
この項目ごとのデータをカンマ区切りで出力し、
1行ずつ出力していきます。
# convert train data
with open(os.path.join(OUT_DIR, 'train_data.csv'), mode='w', encoding='utf-8') as f:
# write header
f.write(','.join(feature_list)+'\n')
# write feature data
for x_data,y_data in zip(x_train, y_train):
f.write(','.join(map(str,np.append(x_data, y_data)))+'\n')
Trainデータの保存です。
zip()を使って入力と出力を一気に取得、
map()を使って、一気にカンマ区切りの文字列へと変換してます。
かなりスッキリと書けました。
Testデータも同じです。
# convert test data
with open(os.path.join(OUT_DIR, 'test_data.csv'), mode='w', encoding='utf-8') as f:
# write header
f.write(','.join(feature_list)+'\n')
# write feature data
for x_data,y_data in zip(x_test, y_test):
f.write(','.join(map(str,np.append(x_data, y_data)))+'\n')
Trainが404個、Testが102個出力されます。
以下のように保存されます。
以上、
Keras API load_data()のデータをローカル保存する方法シリーズでした。
最後まで読んでいただき、ありがとうございます!
ブックマーク登録、
ツイッターフォロー、
よろしくお願いいたします!🙇♂️🙇♂️
↓↓↓