TensorFlow中的变量类型

时间:2018-11-06 14:47:30

标签: tensorflow-datasets

我有一个具有几种变量类型的模型。

  • 布尔值标志:0或1
  • 正浮点值:严格大于零且已知最大值<1000
  • 整数:1 <值<12
  • 类别输入:“ AA”,“ AB”,..,“ ZZ”-仅观察到约100个值
  • 整数得分作为输出值

    cvs文件看起来像

    “布尔”,“ pos_float”,“ int_val”,“类别名称”,“输出得分”
    0,1.234,9,“ CD”,2
    1,6.836,5,“ KF”,6
    0,903.836,10,“ AZ”,4
    .....

    import tensorflow as tf
    import pandas as pd
    from sklearn.preprocessing import MinMaxScaler
    
    training_data_df = pd.read_csv("data_training.csv", dtype=float)
    
    X_training = training_data_df.drop('output_score', axis=1).values
    Y_training = training_data_df[['output_score']].values
    
    test_data_df = pd.read_csv("data_test.csv", dtype=float)
    
    X_testing = test_data_df.drop('output_score', axis=1).values
    Y_testing = test_data_df[['output_score']].values
    
    X_scaler = MinMaxScaler(feature_range=(0, 1))
    Y_scaler = MinMaxScaler(feature_range=(0, 1))
    
    X_scaled_training = X_scaler.fit_transform(X_training)
    Y_scaled_training = Y_scaler.fit_transform(Y_training)
    
    X_scaled_testing = X_scaler.transform(X_testing)
    Y_scaled_testing = Y_scaler.transform(Y_testing)
    
    上面的

    上面的代码将每个变量视为float,并将变量缩放为(0,1)。如何告诉tensorflow变量是整数?如何处理分类变量?

1 个答案:

答案 0 :(得分:1)

对于分类变量,您将需要通过一次性编码(https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f)或通过哈希技巧(https://medium.com/value-stream-design/introducing-one-of-the-best-hacks-in-machine-learning-the-hashing-trick-bf6a9c8af18f)将它们转换为数字表示。 / p>

本质上,您需要为每个功能类别将这些字符串转换为1/0布尔值。

但是,某些模型(例如基于树的模型(例如,Random Forests和Gradient Boosted Trees)可以处理多个类别,因此只需将它们转换为数字类别类型(您可以将字符串值保留为标签)