首页 > 解决方案 > Python - 如何将分类器的结果加入 DataFrame 以将其可视化为散点图?

问题描述

我是这方面的新手,我想应用 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()

标签: pythonclassification

解决方案


函数 RandomUnderSampler() 返回什么,根据 RandomUnderSampler() 返回的内容来制作数据帧有几种方法。例如:从列表列表中创建 Pandas DataFrame。

导入熊猫库

从列表列表中创建 Pandas DataFrame。

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

方法 #2:从 narray/lists 的 dict 创建 DataFrame

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

就像有很多方法一样。知道返回对象的类型你可以运行 type(X_res) type(y_res)

并张贴在这里。


推荐阅读