1つのホットエンコーディング機能

3sm1r

私は2つの整数を取る関数作成する必要があるxNN > x寸法のベクトル戻りN成分を除いてすべてゼロとしx、それが持っているが、1

私はそれを次のように行うことができました、

Function=function(x,N){
  vec=rep(0,N)
  r=as.integer(x)
  vec[r]=1
  return(vec)
}

しかし、プロセスを繰り返して多数の実現に適用する必要がある場合は、非常に遅くなります。一方、私の友人はpythonの単一の関数(「OneHotEncoder」だと思います)で同じことを行うことができ、それは超高速です。

この目的に適した関数がRにあるかどうか疑問に思いました。

クライオ111

@Axemanが言ったことに沿って、ベクトル化された方法でワンホットエンコーディングを見つけることができるかどうかを考える必要があります。

set.seed(1234)
x=sample.int(5,size=10,replace=TRUE)
x
#  [1] 1 4 4 4 5 4 1 2 4 3

nC=max(x) #could be also larger (user-defined)
nR=length(x)
matrix(`[<-`(integer(nR*nC),(seq.int(nR)-1)*nC+x,1),
       nR,nC,byrow=TRUE)
#       [,1] [,2] [,3] [,4] [,5]
#  [1,]    1    0    0    0    0
#  [2,]    0    0    0    1    0
#  [3,]    0    0    0    1    0
#  [4,]    0    0    0    1    0
#  [5,]    0    0    0    0    1
#  [6,]    0    0    0    1    0
#  [7,]    1    0    0    0    0
#  [8,]    0    1    0    0    0
#  [9,]    0    0    0    1    0
# [10,]    0    0    1    0    0

model.matrix上記のアプローチとアプローチを比較します。

#longer input vector
x=sample.int(5,size=1e4,replace=TRUE)

oneHotMtx=function(x) {
  nC=max(x) #could be also larger (user-defined)
  nR=length(x)
  matrix(`[<-`(integer(nR*nC),(seq.int(nR)-1)*nC+x,1),
         nR,nC,byrow=TRUE)
}

oneHotMdl=function(x) {
  xf = factor(x)
  model.matrix(~xf+0)
}

oneHotMdl2=function(x) {
  #version without factor conversion
  model.matrix(~x+0)
}

xf=factor(x)
library(microbenchmark)
microbenchmark(oneHotMtx(x),
               oneHotMdl(x),
               oneHotMdl2(xf),times=1e3)

#Unit: microseconds
#          expr      min       lq      mean    median       uq        max neval cld
#  oneHotMtx(x)  386.621  412.510  678.2977  416.4625  435.382   5394.265  1000 a  
#  oneHotMdl(x) 7363.481 7528.230 8823.8435 7629.8850 7851.019 261808.302  1000   c
#oneHotMdl2(xf) 4253.366 4377.784 5059.0979 4471.5315 4638.637 257106.400  1000  b 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Verilogの1つのホットエンコーディング

分類Dev

機能から1つのホットエンコーディングディメンションへのマッピングを取得します

分類Dev

1つのホットエンコーディング文字

分類Dev

1つの列を1つのホットエンコーディング

分類Dev

1つのホットエンコーディングエラーPython機械学習

分類Dev

CFSMの状態の1つのホットエンコーディング

分類Dev

ScalaのRDDでの1つのホットエンコーディング

分類Dev

numpyからの1つのホットエンコーディング

分類Dev

文字レベルでの1つのホットエンコーディング

分類Dev

numpyを使用した1つのホットエンコーディング

分類Dev

集約された1つのホットエンコーディング

分類Dev

rデータセット内の1つの変数のワンホットエンコーディング

分類Dev

混合データの多くの列を1つのホットエンコーディング

分類Dev

列内の複数のカテゴリデータを1つのホットエンコーディング

分類Dev

Pythonの機能に関する奇妙なホットエンコーディングの問題

分類Dev

複合フィールドの1つのホットエンコーディング

分類Dev

テストに値が存在しない1つのホットエンコーディングトレイン

分類Dev

NNのDNAデータ入力、1つのホットエンコーディング

分類Dev

pysparkでのバケット化と1つのホットエンコーディング

分類Dev

パンダの辞書の列から1つのホットエンコーディングを作成する

分類Dev

1つのホットエンコーディングが機械学習のパフォーマンスを向上させるのはなぜですか?

分類Dev

膨大な数のタグに対する1つのホットエンコーディング

分類Dev

numpyで1つのホットエンコーディングループをベクトル化する方法

分類Dev

pandasDataFrameの列の文字列の1つのホットエンコーディング

分類Dev

1つを使用してモデルを作成します-Kerasのホットエンコーディング

分類Dev

パンダ、1つのホットエンコーディングを逆にする

分類Dev

パンダで1つのホットエンコーディングを実行する

分類Dev

RDataFrame-複数の用語を含む列の1つのホットエンコーディング

分類Dev

1つのホットエンコーディングsklearnの後に列の名前を保持する方法は?

Related 関連記事

  1. 1

    Verilogの1つのホットエンコーディング

  2. 2

    機能から1つのホットエンコーディングディメンションへのマッピングを取得します

  3. 3

    1つのホットエンコーディング文字

  4. 4

    1つの列を1つのホットエンコーディング

  5. 5

    1つのホットエンコーディングエラーPython機械学習

  6. 6

    CFSMの状態の1つのホットエンコーディング

  7. 7

    ScalaのRDDでの1つのホットエンコーディング

  8. 8

    numpyからの1つのホットエンコーディング

  9. 9

    文字レベルでの1つのホットエンコーディング

  10. 10

    numpyを使用した1つのホットエンコーディング

  11. 11

    集約された1つのホットエンコーディング

  12. 12

    rデータセット内の1つの変数のワンホットエンコーディング

  13. 13

    混合データの多くの列を1つのホットエンコーディング

  14. 14

    列内の複数のカテゴリデータを1つのホットエンコーディング

  15. 15

    Pythonの機能に関する奇妙なホットエンコーディングの問題

  16. 16

    複合フィールドの1つのホットエンコーディング

  17. 17

    テストに値が存在しない1つのホットエンコーディングトレイン

  18. 18

    NNのDNAデータ入力、1つのホットエンコーディング

  19. 19

    pysparkでのバケット化と1つのホットエンコーディング

  20. 20

    パンダの辞書の列から1つのホットエンコーディングを作成する

  21. 21

    1つのホットエンコーディングが機械学習のパフォーマンスを向上させるのはなぜですか?

  22. 22

    膨大な数のタグに対する1つのホットエンコーディング

  23. 23

    numpyで1つのホットエンコーディングループをベクトル化する方法

  24. 24

    pandasDataFrameの列の文字列の1つのホットエンコーディング

  25. 25

    1つを使用してモデルを作成します-Kerasのホットエンコーディング

  26. 26

    パンダ、1つのホットエンコーディングを逆にする

  27. 27

    パンダで1つのホットエンコーディングを実行する

  28. 28

    RDataFrame-複数の用語を含む列の1つのホットエンコーディング

  29. 29

    1つのホットエンコーディングsklearnの後に列の名前を保持する方法は?

ホットタグ

アーカイブ