Разброс графика для алгоритма классификации - PullRequest
0 голосов
/ 15 марта 2020

Пожалуйста, помогите мне создать график рассеяния для этого алгоритма классификации. Здесь в yi есть столбец меток (0, 1), я хочу, чтобы прогнозируемые метки были двух разных цветов для обеих меток.

X = np.array(df.iloc[: , [0, 1,2,3,4,5,6,7,8,9,10,]].values)
y = df.iloc[: , 17].values 
dtc = DecisionTreeClassifier()
train_x, test_x, train_y, test_y = train_test_split(X, y, train_size = 0.8, shuffle = True)
kf = KFold(n_splits = 5)
dtc=dtc.fit(train_x, train_y)
dtc_labels = dtc.predict(test_x)

1 Ответ

0 голосов
/ 15 марта 2020

У меня нет доступа к вашим фреймам данных, но вот минимальный рабочий пример, если я правильно понял.

Дело в том, что вы должны использовать логическое индексирование для ваших numpy массивов во время построения , Это подтверждается двумя последними строками.

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split, KFold
import matplotlib.pyplot as plt
X = np.zeros((100,2))
X[:,0] = np.array(list(range(100)))
X[:,1] = np.array(list(range(100)))
y = list([0] * 50 + [1] * 50)
dtc = DecisionTreeClassifier()
train_x, test_x, train_y, test_y = train_test_split(X, y, train_size = 0.8, shuffle = True)
kf = KFold(n_splits = 5)
dtc=dtc.fit(train_x, train_y)
dtc_labels = dtc.predict(test_x)

plt.scatter(test_x[dtc_labels == 0,0],test_x[dtc_labels == 0,1])
plt.scatter(test_x[dtc_labels == 1,0],test_x[dtc_labels == 1,1])
...