Python - Как объединить результаты классификатора в DataFrame, чтобы визуализировать его как точечный график? - PullRequest
0 голосов
/ 08 октября 2019

Я новичок в этом, и я хотел бы применить RandomUnderSampler (from imblearn.under_sampling import RandomUnderSampler), чтобы сбалансировать распределение классов, а затем построить точки, принадлежащие каждому классу, с другим цветом.

ТакПока я сделал следующее, я думаю, что это могло бы работать, но я не знаю, как преобразовать X_res, y_res в DataFrame.

X_res, y_res = RandomUnderSampler(random_state=seed, sampling_strategy=1.0).fit_resample(X, y)

// Do something with X_res and y_res to get a DataFrame

from sklearn.decomposition import PCA

# split data into min and maj classes
(min_points, maj_points, _, _, _) = splitByClass(df)

# fit PCA with minority points
pca = PCA(n_components=2)
pca_min = pca.fit_transform(min_points)

fig, ax = plt.subplots()
ax.scatter(pca_min[:, 0], pca_min[:, 1], color='r', label='minority', alpha=0.4, edgecolors='none')

pca_maj = pca.fit_transform(maj_points)
ax.scatter(pca_maj[:, 0], pca_maj[:, 1], color='b', label='majority', alpha=0.4, edgecolors='none')

ax.legend()
ax.grid(True)

plt.tight_layout()
plt.show()

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Я решил это, выполнив следующее:

# create an empty DataFrame with the desired columns
resultDF = pd.DataFrame(columns=col_names)
# extract from X_res each column and save it in the DF
for index, name in zip(range(len(col_names)), col_names):
    resultDF[name] = X_res[:,index]
# save the y_res in the last columns called 'Class'
resultDF['Class'] = y_res 
0 голосов
/ 08 октября 2019

что возвращает функция RandomUnderSampler (), чтобы создать информационный кадр, есть несколько способов, в зависимости от того, что возвращает RandomUnderSampler (). Например: создание DataFrame Pandas из списков списков.

Импорт библиотеки pandas

создание DataFrame Pandas из списков списков.

import pandas as pd 
data = [['tom', 10], ['nick', 15], ['juli', 14]] 
df = pd.DataFrame(data, columns = ['Name', 'Age']) 
df

Метод # 2: создание DataFrame издиктат narray / lists

import pandas as pd 
data = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]} 
df = pd.DataFrame(data) 
df  

, как существует множество способов. Чтобы узнать тип возвращаемого объекта, вы можете запустить тип (X_res) тип (y_res)

и опубликовать его здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...