2015-04-04 658 views
-1

R文檔說nnet::class.ind()根據給定因子生成類指示符函數。R的class.ind()函數做什麼?我什麼時候可以使用它?

它是否將因素轉換爲某種二元分類?

何時以及爲什麼我們使用此功能?請給我一些例子。

任何幫助表示讚賞。謝謝。

+0

的文檔說,它產生一類指示器*矩陣*,不是一個函數。它是與原始矩陣中的因子水平值相對應的單熱1/0指標虛擬變量的大矩陣。 – smci 2017-02-01 09:58:57

回答

0

是的。它從一個因素造成的指示器/虛變量:

> set.seed(1) 
> x <- factor(sample(1:3, 10, TRUE)) 
> nnet::class.ind(x) 
     1 2 3 
[1,] 1 0 0 
[2,] 0 1 0 
[3,] 0 1 0 
[4,] 0 0 1 
[5,] 1 0 0 
[6,] 0 0 1 
[7,] 0 0 1 
[8,] 0 1 0 
[9,] 0 1 0 
[10,] 1 0 0 

這將是基本相同使用model.matrix

> model.matrix(~0+x) 
    x1 x2 x3 
1 1 0 0 
2 0 1 0 
3 0 1 0 
4 0 0 1 
5 1 0 0 
6 0 0 1 
7 0 0 1 
8 0 1 0 
9 0 1 0 
10 1 0 0 
+0

謝謝,你有分類變量的例子。爲什麼創建虛擬變量?爲什麼以及何時使用此功能? – user4745212 2015-04-04 15:47:54

+0

如果您沒有考慮應用程序,我對您爲什麼感興趣有些困惑。它主要用於指定某些迴歸模型。 – Thomas 2015-04-04 20:28:55

+0

我的歉意,請看這個鏈接http://www.jeffheaton.com/2013/06/basic-classification-in-r-neural-networks-and-support-vector-machines/。 「神經網絡要求物種使用一個n歸一化進行歸一化,我們將在0和1之間歸一化」。我想我不明白爲什麼0和1會標準化它。 – user4745212 2015-04-04 21:24:03

相關問題