2017-10-18 10 views
1

私はDNNClassifier Estimatorを使用しており、評価を予測したいと思います。評価はどのようにして得られますか?

しかし、私は使用予測を知らない。

私は以下の結果を期待しています。

予測評価:XX

plzは、私を助けてくれガイド(使用が予測)

以下

、私のコードを与えます。

""" Define """ 
JOIN_CSV_COLUMNS   = ['USER_ID', 'CONTENT_ID', 'CONTENT_NAME_USER', 'RATING', 'CNTY_CD', 'FIRST_ORD_DD', 'LAST_ORD_DD', 'DVCE_MODEL_ID', 'DWN_CNT', 'RATING_AVG', 'CONTENT_NAME_CONTENT', 'PKG_ID', 'LANG', 'TAGS', 'CATEGORY_NAME', 
          'SLR_ID', 'SLR_CNTY_CD', 'DVCE_LIST', 'FIRST_SALE_DATE', 'RTG_AVG', 'CMT_CNT', 'DESC_LENGTH', 'PRIVILGE', 'REV_COUNT', 'REJ_COUNT', 'PRICE'] 

""" Numeric Column """ 
NF_CONTENT_ID  = tf.feature_column.numeric_column('CONTENT_ID') 
NF_RATING   = tf.feature_column.numeric_column('RATING') 
NF_FIRST_ORD_DD  = tf.feature_column.numeric_column('FIRST_ORD_DD') 
NF_LAST_ORD_DD  = tf.feature_column.numeric_column('LAST_ORD_DD') 


""" Categorical Column """ 
CF_USER_ID    = tf.feature_column.categorical_column_with_hash_bucket('USER_ID', hash_bucket_size=1000) 
CF_CONTENT_NAME_USER = tf.feature_column.categorical_column_with_hash_bucket('CONTENT_NAME_USER', hash_bucket_size=1000) 
CF_CNTY_CD    = tf.feature_column.categorical_column_with_hash_bucket('CNTY_CD', hash_bucket_size=1000) 

crossed_columns = [ 
    tf.feature_column.crossed_column(['RATING_AVG', 'RTG_AVG'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['RATING_AVG', 'PRICE'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['RATING_AVG', 'CNTY_CD'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['RATING_AVG', 'CATEGORY_NAME'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['RTG_AVG', 'TAGS'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['CONTENT_NAME_USER', 'TAGS'], hash_bucket_size=1000), 
    tf.feature_column.crossed_column(['RATING_AVG', 'DWN_CNT'], hash_bucket_size=1000) 
    ] 

deep_columns = [ 
    tf.feature_column.indicator_column(CF_USER_ID), 
    tf.feature_column.indicator_column(CF_CONTENT_NAME_USER), 
    tf.feature_column.indicator_column(CF_CNTY_CD), 
    tf.feature_column.indicator_column(CF_DVCE_MODEL_ID), 
    tf.feature_column.indicator_column(CF_CONTENT_NAME_CONTENT), 

    NF_CONTENT_ID, 
    NF_FIRST_ORD_DD, 
    NF_LAST_ORD_DD, 
    NF_DWN_CNT, 
    NF_RATING_AVG, 
    ] 

def get_input_fn(data_set, num_epochs=None, shuffle=True): 
    return tf.estimator.inputs.pandas_input_fn(
     x=data_set, 
     y=data_set["RATING"], 
     num_epochs=num_epochs, 
     shuffle=shuffle) 


def main(unused_argv): 
    # Load datasets 
    training_set = pd.read_csv("./data/Test/train.csv", encoding ='ISO-8859-1', skipinitialspace=True, skiprows=1, names=JOIN_CSV_COLUMNS) 
    test_set = pd.read_csv("./data/Test/test.csv", encoding ='ISO-8859-1',skipinitialspace=True, skiprows=1, names=JOIN_CSV_COLUMNS) 

    # Set of 6 examples for which to predict median house values 
    prediction_set = pd.read_csv("./data/Test/predict.csv", encoding ='ISO-8859-1',skipinitialspace=True, skiprows=1, names=JOIN_CSV_COLUMNS) 

    # Build 2 layer fully connected DNN with 10, 10 units respectively. 
    m = tf.estimator.DNNLinearCombinedClassifier(
     model_dir=None, 
     linear_feature_columns=crossed_columns, 
     dnn_feature_columns=deep_columns, 
     dnn_hidden_units=[1, 1], 
     dnn_optimizer='Adam', 
     dnn_dropout=0.5, 
     n_classes=6 
) 

    # Train 
    m.train(input_fn=get_input_fn(training_set), steps=1000) 

    # Evaluate loss over one epoch of test_set. 
    ev = m.evaluate(input_fn=get_input_fn(test_set, num_epochs=1, shuffle=False)) 

if __name__ == "__main__": 
    tf.app.run() 
+0

私は 'dotnetnuke'タグを削除しました。これはCMSのためのもので、テンソルフローのサブカテゴリではありません(少なくともこのサイトにはありません)。 – VDWWD

+0

@ Park.BJ:正しい答えが見つかったら、それを受け入れることができますか? – Beta

答えて

0

次のセクションを使用して予測を行うことができます。

preds = list(m.predict(input_fn=get_input_fn(test_set, num_epochs=1, shuffle=False), as_iterable=True)) 
print(accuracy_score(y_test, preds)) 
関連する問題