part-1에서 했던 작업과 동일하게 데이터를 로드하여 트레이닝, 테스트 데이터셋을 만듭니다.
In [1]:
import pandas
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score
from tensorflow.contrib import skflow
In [2]:
train = pandas.read_csv('data/titanic_train.csv')
In [3]:
y, X = train['Survived'], train[['Age', 'SibSp', 'Fare']].fillna(0)
In [4]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
In [5]:
classifier = skflow.TensorFlowDNNClassifier(
hidden_units=[10, 20, 10],
n_classes=2,
batch_size=128,
steps=500,
learning_rate=0.05)
In [6]:
classifier.fit(X_train, y_train)
Out[6]:
In [7]:
print(accuracy_score(classifier.predict(X_test), y_test))
In [8]:
import tensorflow as tf
In [9]:
def dnn_tanh(X, y):
layers = skflow.ops.dnn(X, [10, 20, 10], tf.tanh)
return skflow.models.logistic_regression(layers, y)
In [10]:
classifier = skflow.TensorFlowEstimator(
model_fn=dnn_tanh,
n_classes=2,
batch_size=128,
steps=500,
learning_rate=0.05)
In [11]:
classifier.fit(X_train, y_train)
Out[11]:
In [12]:
print(accuracy_score(classifier.predict(X_test), y_test))
In [13]:
import random
from sklearn import datasets
In [14]:
random.seed(42)
In [15]:
digits = datasets.load_digits()
In [16]:
X = digits.images
In [17]:
y = digits.target
In [18]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
In [19]:
def conv_model(X, y):
X = tf.expand_dims(X, 3)
features = tf.reduce_max(skflow.ops.conv2d(X, 12, [3, 3]), [1, 2])
features = tf.reshape(features, [-1, 12])
return skflow.models.logistic_regression(features, y)
In [20]:
classifier = skflow.TensorFlowEstimator(
model_fn=conv_model,
n_classes=10,
batch_size=128,
steps=500,
learning_rate=0.05)
In [21]:
classifier.fit(X_train, y_train)
Out[21]:
In [22]:
print(accuracy_score(classifier.predict(X_test), y_test))
In [ ]: