CDC 데이터 세트에 가장 적합한 분류자를 찾기 위해 코드를 약간 코딩했습니다. 먼저 다양한 scikit-learn 분류기를 시도한 다음 API가 거의 동일하므로 TF.Learn 클래스 (DNNClassifier 및 LinearClassifier)를 추가하기로 결정했습니다.TF.Learn의 정확도 문제 DNNClassifier 및 LinearClassifier
그런 다음 결과를 비교할 때 모든 scikit-learn 모델은 TF로 60-70 %의 정확도와 손쉬운 도달률을 보입니다. DNanClassifier 및 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 나는 0 또는 1 (그리고 1, 2 원래 CDC 데이터 세트에서와 같이) 나는이 분류의 테스트를 실행 다시로 라벨을 수정했습니다. 새로운 결과는 다음과 같습니다.
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 학습 분류 자 뒤에 상당히 있습니다. scickit learn Multi-layer Perceptron classifier와 같이 DNNClassifier가 "불량"하다고 생각할 수도 있습니다.
데이터 및 분류 자의 종류를 고려할 때 TF.Learn DNNClassifier 및 LinearClassifier의 정확도가 좋지 않다고 생각하십니까?
더 많은 시간 (더 많은 단계) 동안 시도하고 결과가 일관성이 있는지 확인할 수 있습니까? 200 걸음이 너무 심하게 보인다. – sygi
나는 방금 5000 steps, 같은 결과, 약 34 %의 정확도로 시도했다. (그러나 scikit learn classifier의 즉석 결과와 비교하여 5 초가 소요된다.) – Shazz
tf.learn의 RandomForestEstimator가주는 것은 무엇인가? 예를 들어, DNNClassifier에 대한 예제는 examples/random_forest_mnist.py를 참고하십시오. – jonas25007