ガン評価 準備
breast-cancer-wisconsinデータセットを使い、TensorFlowによるロジスティック回帰を行う。breast-cancer-wisconsinデータセットはがん細胞の情報とがんの悪性か良性かをまとめたデータセットである。
データセットのダウンロード
$ curl -O https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data
Sample
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# TensorFlow r1.0.0
# Python 2.7.6
import numpy as np
import tensorflow as tf
# データセットを読み込む
# なお欠損値は0とした
dataset = np.genfromtxt("./breast-cancer-wisconsin.data", delimiter=',', dtype=np.uint32, filling_values=(0))
# 重複したデータを省く
_,index = np.unique(dataset[:,0], return_index=True)
dataset = dataset[index]
# 2が良性 => 0に置き換える
dataset[:,10][np.where(dataset[:,10] == 2)] = 0
# 4が悪性 => 1に置き換える
dataset[:,10][np.where(dataset[:,10] == 4)] = 1
# 患者のデータ
data = dataset[:,1:10]
# ラベル(正解データ)
labels = dataset[:,10]
# データを7:1で分割する
# 全データ数 : 699
# 訓練用データ数 : 612
# テスト用データ数 : 87
train_data_size = len(dataset) - len(dataset) // 8
test_data_size = len(dataset) // 8
# 訓練用データ
train_data = data[:train_data_size]
train_labels = labels[:train_data_size].reshape(train_data_size, 1)
# テスト用データ
test_data =data[train_data_size:]
test_labels = labels[train_data_size:].reshape(test_data_size, 1)
# データを1件抽出し、表示する
print train_data[1]
print train_labels[1]
実行結果
[ 9 1 2 6 4 10 7 7 2]
[1]