3

各特徴ベクトルに 50 個の特徴があり、そのうち 45 個がカテゴリです。カテゴリ変数をテンソルフローに送信するのに問題があります。カテゴリ変数を使用したテンソルフローのチュートリアルの例を見つけましたが、これを適応させて、両方のタイプのデータと複数の機能を持つセットで動作させる方法がわかりません。私の最初の試みは以下のとおりですが、これは変数の大部分をエンコードしていません。

input_classes, input_gradients, outputs = databank.get_dataset()

print("Creating feature matrix")
inputs = np.array(input_classes, dtype=np.int32)
outputs = np.array(outputs, dtype=np.int32)
random.seed(42)
input_train, input_test, output_train, output_test = cross_validation.train_test_split(inputs, outputs, test_size=0.2, random_state=42)

print("Creating DNN")
# Prepare the neural net
def my_model(X, y):
    # DNN with 10,20,10 hidden layers and dropout chance of 0.5
    layers = skflow.ops.dnn(X, [10, 20, 10], keep_prob=0.5)
    return skflow.models.logistic_regression(layers, y)


classifier = skflow.TensorFlowEstimator(model_fn=my_model, n_classes=2)

print("Testing DNN")
# Test the neural net
classifier.fit(input_train, output_train)
score = metrics.accuracy_score(classifier.predict(input_test), output_test)
print("Accuracy: %f" % score)

本当の問題は、上記のコードで my_model 関数への入力 'tensor' X を処理する方法がよくわからないことだと思います。

4

1 に答える 1

0

カテゴリプロセッサを使用して、入力する前にカテゴリを整数にマップします。

cat_processor = skflow.preprocessing.CategoricalProcessor()
X_train = np.array(list(cat_processor.fit_transform(X_train)))
X_test = np.array(list(cat_processor.transform(X_test)))
n_classes = len(cat_processor.vocabularies_[0])
于 2016-03-11T16:15:49.180 に答える