标签: dummy-variable

如何强制R在回归中使用指定的因子级别作为参考?

如果我在回归中使用二进制解释变量,如何告诉R使用某个级别作为参考?

它只是默认使用某个级别.

lm(x ~ y + as.factor(b)) 
Run Code Online (Sandbox Code Playgroud)

b {0, 1, 2, 3, 4}.假设我想使用3而不是R使用的零.

regression r linear-regression categorical-data dummy-variable

100
推荐指数
5
解决办法
16万
查看次数

熊猫的get_dummies与Sklearn的OneHotEncoder()::什么更有效?

我正在学习不同的方法来将分类变量转换为机器学习分类器的数字.我遇到了这个pd.get_dummies方法,sklearn.preprocessing.OneHotEncoder()我想看看它们在性能和使用方面有何不同.

我找到了一个关于如何OneHotEnocder()https://xgdgsc.wordpress.com/2015/03/20/note-on-using-onehotencoder-in-scikit-learn-to-work-on-categorical-features/上使用的教程,因为该sklearn文件并没有这个功能也很有帮助.我有一种感觉,我没有正确地做到这一点......但是

有人可以解释使用pd.dummies过的优点和缺点,sklearn.preprocessing.OneHotEncoder()反之亦然吗?我知道这OneHotEncoder()给你一个稀疏矩阵但除此之外我不确定它是如何使用的,以及该pandas方法的好处是什么.我用它效率不高吗?

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
sns.set()

%matplotlib inline

#Iris Plot
iris = load_iris()
n_samples, m_features = iris.data.shape

#Load Data
X, y = iris.data, iris.target
D_target_dummy = dict(zip(np.arange(iris.target_names.shape[0]), iris.target_names))

DF_data = pd.DataFrame(X,columns=iris.feature_names)
DF_data["target"] = pd.Series(y).map(D_target_dummy)
#sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \
#0                  5.1               3.5                1.4 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pandas scikit-learn dummy-variable

49
推荐指数
4
解决办法
2万
查看次数

不存在所有类别时的虚拟变量

我有一组数据框,其中一列包含一个分类变量.我想将它转换为几个虚拟变量,在这种情况下我通常会使用get_dummies.

会发生什么是get_dummies查看每个数据帧中可用的数据以找出有多少类别,从而创建适当数量的虚拟变量.但是,在我现在正在工作的问题中,我实际上事先知道可能的类别是什么.但是,当单独查看每个数据框时,并非所有类别都必须出现.

我的问题是:有没有办法传递get_dummies(或等效函数)类别的名称,这样,对于没有出现在给定数据框中的类别,它只是创建一个0的列?

会有这样的东西:

categories = ['a', 'b', 'c']

   cat
1   a
2   b
3   a
Run Code Online (Sandbox Code Playgroud)

成为这个:

  cat_a  cat_b  cat_c
1   1      0      0
2   0      1      0
3   1      0      0
Run Code Online (Sandbox Code Playgroud)

python machine-learning pandas dummy-variable

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

在训练和测试数据中保持相同的虚拟变量

我正在使用两个单独的培训和测试集在python中构建预测模型.训练数据包含数字类型分类变量,例如邮政编码,[91521,23151,12355,...],以及字符串分类变量,例如,城市['芝加哥','纽约','洛杉矶', ...].

为了训练数据,我首先使用'pd.get_dummies'来获取这些变量的虚拟变量,然后使用转换的训练数据拟合模型.

我对测试数据进行相同的转换,并使用训练模型预测结果.但是,我收到错误'ValueError:模型的功能数必须与输入匹配.模型n_features为1487,输入n_features为1345'.原因是测试数据中的虚拟变量较少,因为它具有较少的"城市"和"邮政编码".

我怎么解决这个问题?例如,'OneHotEncoder'将仅编码所有数字类型的分类变量.'DictVectorizer()'只会编码所有字符串类型的分类变量.我在线搜索并看到一些类似的问题,但没有一个真正解决我的问题.

使用scikit-learn处理分类功能

https://www.quora.com/If-the-training-dataset-has-more-variables-than-the-test-dataset-what-does-one-do

https://www.quora.com/What-is-the-best-way-to-do-a-binary-one-hot-one-of-K-coding-in-Python

python prediction dataframe scikit-learn dummy-variable

30
推荐指数
4
解决办法
2万
查看次数

在R data.table中创建虚拟变量

我正在使用R中的一个非常大的数据集,并且已经使用数据框进行操作,并决定切换到data.tables以帮助加快操作.我无法理解J操作,特别是我正在尝试生成虚拟变量,但我无法弄清楚如何在data.tables []中编写条件操作.

MWE:

test <- data.table("index"=rep(letters[1:10],100),"var1"=rnorm(1000,0,1))
Run Code Online (Sandbox Code Playgroud)

我想这样做是为了添加列a通过j为虚拟变量,该列a将有一个值1时,index == "a"0其他.在data.frame环境中,它看起来像:

test$a <- 0

test$a[test$index=='a'] <- 1
Run Code Online (Sandbox Code Playgroud)

r data.table dummy-variable

20
推荐指数
1
解决办法
6558
查看次数

如何让pandas get_dummies发出N-1个变量以避免共线性?

pandas.get_dummies每个分类值发出一个虚拟变量.是否有一些自动,简单的方法要求它只创建N-1虚拟变量?(只是随意摆脱一个"基线"变量)?

需要避免我们的数据集中的共线性.

python machine-learning pandas dummy-variable

19
推荐指数
1
解决办法
6286
查看次数

熊猫:傻瓜

我有以下数据帧:

   amount  catcode    cid      cycle      date     di  feccandid    type
0   1000    E1600   N00029285   2014    2014-05-15  D   H8TX22107   24K
1   5000    G4600   N00026722   2014    2013-10-22  D   H4TX28046   24K
2      4    C2100   N00030676   2014    2014-03-26  D   H0MO07113   24Z
Run Code Online (Sandbox Code Playgroud)

我想为列中的值创建虚拟变量type.大约15岁.我试过这个:

pd.get_dummies(df['type'])

它返回:

           24A  24C  24E  24F  24K  24N  24P  24R  24Z
date                                    
2014-05-15  0    0    0    0    1    0    0    0    0
2013-10-22  0    0    0    0    1    0    0    0    0
2014-03-26  0    0    0    0    0    0    0    0 …
Run Code Online (Sandbox Code Playgroud)

python pandas dummy-variable

18
推荐指数
2
解决办法
4万
查看次数

如何通过创建虚拟变量作为折叠方法来按组汇总数据

我正在尝试按组汇总数据集,以使用虚拟列来确定每个组的值是否出现在数据的未分组的最常见值中。

作为示例,让我们flights从 中获取数据nycflights13

library(dplyr, warn.conflicts = FALSE)
library(nycflights13)

my_flights_raw <-
  flights %>%
  select(carrier, month, dest)

my_flights_raw
#> # A tibble: 336,776 x 3
#>    carrier month dest 
#>    <chr>   <int> <chr>
#>  1 UA          1 IAH  
#>  2 UA          1 IAH  
#>  3 AA          1 MIA  
#>  4 B6          1 BQN  
#>  5 DL          1 ATL  
#>  6 UA          1 ORD  
#>  7 B6          1 FLL  
#>  8 EV          1 IAD  
#>  9 B6 …
Run Code Online (Sandbox Code Playgroud)

performance r dummy-variable

15
推荐指数
2
解决办法
1024
查看次数

处理标签编码的未知值

如何在sk-learn中处理标签编码的未知值?只有在检测到新标签时,标签编码器才会爆炸.

我想要的是通过one-hot -encoder 对分类变量进行编码.但是,sk-learn不支持字符串.所以我在每列上都使用了标签编码器.

我的问题是,在我的交叉验证步骤中,管道中出现了未知标签.基本的单热编码器可以选择忽略这种情况.apriori pandas.getDummies /cat.codes是不够的,因为管道应该使用可能包含未知标签的真实,新鲜的传入数据.

是否有可能CountVectorizer为此目的使用?

python pandas scikit-learn dummy-variable one-hot-encoding

13
推荐指数
1
解决办法
6718
查看次数

从互斥的虚拟变量创建分类变量

我的问题是关于先前回答的关于将多个虚拟变量组合成单个分类变量的问题的详细说明.

在之前提出的问题中,分类变量是从非互斥的虚拟变量创建的.对于我的情况,我的虚拟变量是相互排斥的,因为它们代表了2X2主体间因子设计中的交叉实验条件(也有一个内部主题组件,我在这里没有解决),所以我不认为我做了interaction什么需要做.

例如,我的数据可能如下所示:

id   conditionA    conditionB    conditionC     conditionD
1    NA            1             NA             NA
2    1             NA            NA             NA
3    NA            NA            1              NA
4    NA            NA            NA             1
5    NA            2             NA             NA
6    2             NA            NA             NA
7    NA            NA            2              NA
8    NA            NA            NA             2
Run Code Online (Sandbox Code Playgroud)

我现在想制作结合ACROSS不同类型条件的分类变量.例如,具有条件A和B的值的人可能使用一个分类变量编码,并且具有条件C和D的值的人.

id   conditionA    conditionB    conditionC     conditionD  factor1    factor2
1    NA            1             NA             NA          1          NA
2    1             NA            NA             NA          1          NA
3    NA            NA            1              NA          NA …
Run Code Online (Sandbox Code Playgroud)

r categorical-data dummy-variable

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