Использование карты в качестве входных данных для классификатора случайных лесов - PullRequest
0 голосов
/ 21 мая 2018

У меня проблема с использованием модуля sklearn в python.Я пытаюсь использовать классификатор случайных лесов для классификации 16 различных классов, используя следующий код:

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)

Но он возвращает ошибку, указывающую:

TypeError: float ()аргумент должен быть строкой или числом, а не «картой»

Как я могу использовать карту в этой функции?

1 Ответ

0 голосов
/ 21 мая 2018

Если вы измените:

X.append(map(float, tokens[0:NUM_PCA]))

на:

X.append([float(tok) for tok in tokens[0:NUM_PCA]])

проблема должна быть исправлена.

Обратите внимание, что вы должны сделать то же самое для test_X.append(...)

...