我有一个具有几种变量类型的模型。
整数得分作为输出值
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变量是整数?如何处理分类变量?
答案 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)可以处理多个类别,因此只需将它们转换为数字类别类型(您可以将字符串值保留为标签)