ワイン評価
!curl -o "./wine.csv" http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv
データ・セットのフォーマットは、下記の通り。
このデータをdataとlabelに分離する。
Labelの1-10の評価は下記のようにベクトル化する
# coding:utf-8
import numpy as np
import tensorflow as tf
import pandas as pd
# データセットを読み込む
# なお欠損値は0とした
dataset = np.genfromtxt("./wine.csv", delimiter=';', dtype=np.float32, filling_values=(0), skip_header=1))
# 重複したデータを省く
_,index = np.unique(dataset[:,0], return_index=True)
dataset = dataset[index]
# Wineのデータ
datas = dataset[:,0:11]
# Wineのラベル(品質)
labels = dataset[:,11]
N = len(labels)
vector_labels = np.zeros((N,10))
for i in xrange(N):
vector_labels[i][int(labels[i])] = 1.0
# データを7:1で分割する
train_data_size = len(dataset) - len(dataset) // 8
test_data_size = len(dataset) // 8
# 訓練用データ
train_datas = datas[:train_data_size]
train_labels = vector_labels[:train_data_size].reshape(train_data_size, 1)
# テスト用データ
test_datas = datas[train_data_size:]
test_labels = vector_labels[train_data_size:].reshape(test_data_size, 1)
# データを1件抽出し、表示する
print train_datas[0]
print train_labels[0]
出力結果
[ 4.59999990e+00 5.19999981e-01 1.50000006e-01 2.09999990e+00
5.40000014e-02 8.00000000e+00 6.50000000e+01 9.93399978e-01
3.90000010e+00 5.60000002e-01 1.31000004e+01]
[ 0,0,0,0.0,0,0,1,0,0,0]