CDCデータセットに適合する最適な分類子を見つけるためのコードを少しコード化しました。最初に、さまざまなscikit-learnクラシファイアを試してみましたが、APIがほぼ同じであるため、TF.Learnクラス(DNNClassifierとLinearClassifier)を追加することにしました。TF.Learnの精度問題DNNClassifierとLinearClassifier
次に、私が結果を比較すると、すべてのscikit-learnモデルが容易に60〜70%の精度に達し、TF.learn DNNClassifiersとLinearClassifierで38%を超えることはできず、時間がかかります私はモデルのフィッティング中にステップ数を設定しません)。
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2)
for classifier in classifiers:
if classifier == "TF Deep Neural Network":
feature_columns = learn.infer_real_valued_columns_from_input(X_train)
clf = DNNClassifier(feature_columns=feature_columns,
hidden_units=[10,10,10],
n_classes=2, enable_centered_bias=None);
clf.fit(X_train, Y_train, steps=200)
elif classifier == "TF Linear Classifier":
feature_columns = learn.infer_real_valued_columns_from_input(X_train)
clf = LinearClassifier(n_classes=2, feature_columns=feature_columns)
clf.fit(X_train, Y_train, steps=200)
else:
clf = getInstance(classifiers[classifier][0], classifiers[classifier][1], classifiers[classifier][2])
clf.fit(X_train, Y_train)
# predict on test data
prediction = clf.predict(X_test)
# compute accuracy and sum it to the previous ones
accuracy = accuracy_score(Y_test, prediction)
結果エキス:ここ
classifier Gaussian Naive Bayes accuracy 0.85
classifier K-Nearest Neighbors accuracy 0.87
classifier TF Deep Neural Network accuracy 0.4
classifier Random Forest accuracy 0.85
classifier TF Linear Classifier accuracy 0.4
classifier Decision Tree accuracy 0.87
classifier Neural Network accuracy 0.4
classifier AdaBoost accuracy 0.86
classifier Linear Support Vector Machine accuracy 0.88
classifier Radial Basic Function Support Vector Machine accuracy 0.74
全コード
私はおそらくミスを犯したが、私はそれを見ていない...ここで
は、コードの抽出物です: https://github.com/shazz/gender_classification_challenge/blob/master/demo_with_BRFSS_and_TF.pyしたがって、正確性が非常に低い理由についての洞察は(また、フィットする時間)TF.Learnと感謝されます!クマラの答え
に基づい
UPDATE Iは、(元のCDCデータセットと同様としない1及び2)は0または1であるとラベルを変更し、私は再び分類テストを実行しました。新しい結果は次のとおりです。
classifier AdaBoost accuracy 0.87
classifier Linear Support Vector Machine accuracy 0.86
classifier K-Nearest Neighbors accuracy 0.86
classifier Gaussian Naive Bayes accuracy 0.85
classifier Random Forest accuracy 0.85
classifier Radial Basic Function Support Vector Machine accuracy 0.83
classifier Decision Tree accuracy 0.83
classifier Neural Network accuracy 0.64
classifier TF Deep Neural Network accuracy 0.63
classifier TF Linear Classifier accuracy 0.62
まだscikit learn classifiersのかなり後ろです。 意味があるのは、scikit多層マルチパーセプトロン分類器と同様、DNNClassifierが「不良」であることです。
データの種類と分類子を考慮すると、TF.Learn DNNClassifierとLinearClassifierの精度はよくないと思いますか?
長い時間(より多くのステップ)試して結果が一致するかどうか確認できますか? 200歩がひどくないようです。 – sygi
私はちょうど5000ステップ、同じ結果、約34%の精度で試しました(しかし、scikitラーニングクラシファイアからの瞬時の結果と比較して5秒かかる) – Shazz
tf.learnのRandomForestEstimatorはあなたに何を与えるのですか?それは、例えば、 DNNClassifierについてはexamples/random_forest_mnist.pyを見てください。 – jonas25007