python - 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()
解决方案
函数 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)
并张贴在这里。
推荐阅读
- c# - C# HttpWebRequest 不适用于 Bing 图像
- c# - NAudio Asio 同时录制和播放
- bigdata - 来自 CLI 的 scala/spark 脚本
- jquery - Wikipedia API 的同源策略
- eclipse - Eclipse PyDev 插件模板 (PDE)
- ruby - 如何动态验证和执行方法?
- elasticsearch - 将所有突出显示结果统一在一个合并的结果中 ElasticSearch
- python-3.x - Pygame:display.update() 直到时钟延迟后才会更新
- node.js - 使用子域中间件匹配客户端工作区
- excel - 更改 vba 已更改值 VBA 的单元格颜色