小编Ama*_*nda的帖子

将 Pandas Interval 转换为字符串(然后再返回)

我对 Python 比较陌生,正在尝试准备一些数据来训练 RandomForest。由于各种原因,我们希望数据是离散的,所以有几个连续的变量需要离散化。我qcut在 Pandas 中找到了它,它似乎可以做我想做的事 - 我可以设置多个垃圾箱,它会将变量离散化到那么多垃圾箱中,试图保持每个垃圾箱中的计数均匀。

但是,输出的pandas.qcut是一个Intervals列表,scikit-learn中的RandomForest分类器需要一个字符串。我发现我可以使用.astype(str). 这是我正在做的事情的一个快速示例:

import pandas as pd
from random import sample

vals = sample(range(0,100), 100)
cuts = pd.qcut(vals, q=5)
str_cuts = pd.qcut(vals, q=5).astype(str)
Run Code Online (Sandbox Code Playgroud)

然后 str_cuts 是传入随机森林的变量之一。

但是,该系统的目的是训练 RandomForest,将其保存到文件中,然后允许某人在以后加载它并获得新测试实例的分类,这在训练时是不可用的。并且因为分类器是在离散化数据上训练的,所以新的测试实例需要在使用前进行离散化。所以我希望能够做的是在一个新实例中读取,将已经建立的离散化方案应用于它,将其转换为字符串,然后在随机森林中运行它。但是,我对“应用离散化方案”的最佳方式感到困惑。

有没有简单的方法来处理这个问题?我认为没有直接的方法可以将字符串转换回间隔。我可以从离散化(例如:)中获取所有 Interval 值的列表cuts.unique()并在测试时应用它,但这需要在随机森林旁边保存/加载离散化字典,这看起来很笨重,我担心会遇到问题试图重新创建一个分类变量(主要来自 R,它对分类变量的格式非常讲究)。或者还有其他我没有看到的解决方法吗?

python binning pandas random-forest discretization

9
推荐指数
1
解决办法
6262
查看次数

使用R中的ggplot2更改图例中的颜色

我在ggplot中指定我的传说中的颜色有两个不同的问题.我试图制作一个简单的例子来说明我的问题:

df <- data.frame(x=rep(1:9, 10), y=as.vector(t(aaply(1:10, 1, .fun=function(x){x:(x+8)}))), method=factor(rep(1:9, each=10)), DE=factor(rep(1:9, each=10)))
ggplot(df, aes(x, y, color=method, group=DE, linetype=DE)) + geom_smooth(stat="identity")
Run Code Online (Sandbox Code Playgroud)

出于某种原因,标题DE下的图例中显示的线型都是蓝色.我希望他们是黑人,但我不知道他们为什么一开始就是蓝色,所以我不知道如何改变它们.

对于我的另一个问题,我试图使用点颜色和点形状来显示我的数据中的两个不同的区别.我想要传说这两个.这就是我所拥有的:

classifiers <- c("KNN", "RF", "NB", "LR", "Tree")
des <- c("Uniform", "Gaussian", "KDE")

withoutDE <- c(.735, .710, .706, .628, .614, .720, .713, .532, .523, .557, .677, .641, .398, .507, .538)
withDE <- c(.769, .762, .758, .702, .707, .752, .745, .655, .721, .733, .775, .772, .749, .756, .759)

df <- data.frame(WithoutDE=withoutDE, WithDE=withDE, DE=rep(des, each=5), Classifier=rep(classifiers, 3))
df <- cbind(df, Method=paste(df$DE, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

binning ×1

discretization ×1

ggplot2 ×1

pandas ×1

python ×1

r ×1

random-forest ×1