我正在尝试 tensorflow 随机森林,但我收到以下错误参数 =
tf.contrib.tensor_forest.python.tensor_forest.ForestHParams(num_trees=100, max_nodes=1000,num_classes = len(le.classes_),num_features = 119)
classifier =tf.contrib.tensor_forest.client.random_forest.TensorForestEstimator(params)
classifier.fit(x=X_train, y=y_train)
ValueError: Tensor conversion requested dtype float32 for Tensor with dtype float64: 'Tensor("concat:0", shape=(?, 119), dtype=float64)'
但是当我跑步时它会起作用scikit-learn
clf = RandomForestClassifier(n_estimators=n_estms, n_jobs=n_jobs)
clf = clf.fit(X_train, y_train)
更新:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42)
更新:尝试了这种风格,但仍然无法正常工作
input_fn = numpy_io.numpy_input_fn(
x=X_train.astype(np.float32),
y=y_train.astype(np.float32),
num_epochs=None,
shuffle=True)
classifier.fit(input_fn = input_fn,steps=None)
ValueError: Features are incompatible with given information. Given features: Tensor("fifo_queue_DequeueMany:1",
shape=(128, 119), dtype=float32), required signatures: TensorSignature(dtype=tf.float64, shape=TensorShape([Dimension(128), Dimension(119)]), is_sparse=False).
数据集:
X_train,y_train,len(X_train),len(y_train)
(array([[ 3.3042e-01, 2.4995e-01, -6.0874e-01, ..., 3.0400e+02,
5.0000e+00, 1.0000e+00],
[ 4.2466e-01, 8.5174e-01, 8.6044e-01, ..., 1.0000e+00,
7.8000e+01, 1.0000e+00],
[ 6.1890e-01, -1.1185e+00, 5.8483e-01, ..., 1.4000e+01,
7.0000e+00, 1.0000e+00],
...,
[ 9.0512e-01, 1.3008e-01, 1.0917e+00, ..., 1.7000e+01,
2.0000e+00, 1.0000e+00],
[-1.4751e-01, 5.5556e-01, 1.0764e+00, ..., 1.8000e+01,
1.3000e+01, 1.0000e+00],
[-5.0246e-01, 1.2178e+00, -8.0065e-01, ..., 1.0000e+00,
3.0000e+00, 0.0000e+00]]),
array([1, 0, 5, ..., 8, 5, 9]),
510281,
510281)