使用地图作为随机森林分类器的输入
Using map as an input to random forest classifier
我在 python 中使用 sklearn 模块时遇到问题。我正在尝试使用随机森林 classifier classification of 16 different class using the following code:
count = 0
for line in lines:
tokens = line.strip().split(",")
if count < TRAINING_SIZE:
X.append(map(float, tokens[0:NUM_PCA]))
if CLASSIFICATION_TYPE == 2:
y.append(int(tokens[len(tokens)-1]))
elif int(tokens[len(tokens)-1]) == 1:
y.append(0)
else:
y.append(1)
count += 1
else:
test_X.append(map(float, tokens[0:NUM_PCA]))
if CLASSIFICATION_TYPE == 2:
test_y.append(int(tokens[len(tokens)-1]))
elif int(tokens[len(tokens)-1]) == 1:
test_y.append(0)
else:
test_y.append(1)
clf = RandomForestClassifier(n_estimators=10, max_depth=None, min_samples_split=1, random_state=0)
clf.fit(X,y)
train_predictions = clf.predict(X)
test_predictions = clf.predict(test_X)
但它 returns 一个错误指示:
TypeError: float() argument must be a string or a number, not 'map'
如何在此函数中使用地图?
如果你改变:
X.append(map(float, tokens[0:NUM_PCA]))
至:
X.append([float(tok) for tok in tokens[0:NUM_PCA]])
问题应该已解决。
请注意,您必须对 test_X.append(...)
执行相同的操作
我在 python 中使用 sklearn 模块时遇到问题。我正在尝试使用随机森林 classifier classification of 16 different class using the following code:
count = 0
for line in lines:
tokens = line.strip().split(",")
if count < TRAINING_SIZE:
X.append(map(float, tokens[0:NUM_PCA]))
if CLASSIFICATION_TYPE == 2:
y.append(int(tokens[len(tokens)-1]))
elif int(tokens[len(tokens)-1]) == 1:
y.append(0)
else:
y.append(1)
count += 1
else:
test_X.append(map(float, tokens[0:NUM_PCA]))
if CLASSIFICATION_TYPE == 2:
test_y.append(int(tokens[len(tokens)-1]))
elif int(tokens[len(tokens)-1]) == 1:
test_y.append(0)
else:
test_y.append(1)
clf = RandomForestClassifier(n_estimators=10, max_depth=None, min_samples_split=1, random_state=0)
clf.fit(X,y)
train_predictions = clf.predict(X)
test_predictions = clf.predict(test_X)
但它 returns 一个错误指示:
TypeError: float() argument must be a string or a number, not 'map'
如何在此函数中使用地图?
如果你改变:
X.append(map(float, tokens[0:NUM_PCA]))
至:
X.append([float(tok) for tok in tokens[0:NUM_PCA]])
问题应该已解决。
请注意,您必须对 test_X.append(...)