タグ付けされた質問 「many-categories」

多数のレベルを持つカテゴリー変数、およびそのような変数を処理するための統計的手法(例:融合投げ縄)。

6
カテゴリ変数を多くのレベルで折りたたむ原理的な方法は?
統計モデルの入力(予測子)として使用するために、多くのカテゴリを少数に折りたたむ(またはプールする)ために使用できるテクニックは何ですか? 大学生(学部生が選択した専門分野)などの変数を考えてみましょう。順不同でカテゴリに分類されますが、潜在的に数十の異なるレベルを持つことができます。回帰モデルの予測子としてmajorを使用するとします。 これらのレベルをそのままモデリングに使用すると、非常に多くのレベルがあるため、あらゆる種類の問題が発生します。それらを使用するために多くの統計的精度が捨てられ、結果を解釈するのは困難です。特定の専攻に興味を持つことはめったにありません。専攻の幅広いカテゴリ(サブグループ)に興味を持つ可能性がはるかに高くなります。しかし、レベルをそのような上位レベルのカテゴリに分割する方法や、使用する上位レベルのカテゴリの数さえも必ずしも明確ではありません。 典型的なデータについては、因子分析、行列因子分解、または離散潜在モデリング手法を使用して満足です。しかし、メジャーは相互に排他的なカテゴリであるため、私はそれらの共分散をあらゆるものに活用することにheしています。 さらに、私は主要なカテゴリー自体を気にしません。回帰結果に関して一貫性のある高レベルのカテゴリを作成することに関心があります。バイナリ結果の場合、線形判別分析(LDA)のようなものが示唆され、識別パフォーマンスを最大化するより高いレベルのカテゴリを生成します。しかし、LDAは限られた手法であり、ダーティデータがdrするように感じます。さらに、継続的なソリューションを解釈するのは困難です。 一方、多重分散分析(MCA)のような共分散に基づくものは、相互排他的なダミー変数間の固有の依存性のため、この場合は疑わしいようです-それらは、複数のカテゴリ変数よりも複数のカテゴリ変数の研究に適しています同じ変数。 編集:明確にするために、これはカテゴリを折りたたむ(それらを選択しない)ことであり、カテゴリは予測変数または独立変数です。後から考えると、この問題は「すべてを正規化し、神にそれらを整理させる」適切な時期のようです。この質問を見てうれしいことは、多くの人にとって興味深いことです!

6
多くのカテゴリ変数を使用して分類を改善する
私は200,000以上のサンプルとサンプルあたり約50の特徴を持つデータセットに取り組んでいます:10の連続変数と他の〜40はカテゴリ変数(国、言語、科学分野など)です。これらのカテゴリ変数には、たとえば150か国、50の言語、50の科学分野などがあります。 これまでの私のアプローチは次のとおりです。 多くの可能な値を持つカテゴリ変数ごとに、この値を取得する10000個を超えるサンプルを持つ変数のみを取得します。これにより、150ではなく5〜10のカテゴリに減少します。 カテゴリカル変数ごとにダミー変数を作成します(10か国の場合、サンプルごとにサイズ10のバイナリベクトルを追加します)。 このデータをランダムフォレスト分類器(パラメーターのクロス検証など)にフィードします。 現在、このアプローチでは、65%の精度しか得られず、さらに多くのことができるように感じています。特に、1)に満足していません。サンプルの数に応じて「最も関連性の低い値」を勝手に削除してはいけないように感じるからです。一方、RAMには、可能なすべての値を保持することで、データに500列* 200000行を追加する余裕がありません。 この多くのカテゴリ変数に対処するための提案はありますか?

6
円グラフの問題
円グラフに関する議論が増えているようです。 それに対する主な議論は次のようです: 面積は長さよりも少ない力で知覚されます。 円グラフのデータポイントとピクセルの比率が非常に低い ただし、プロポーションを描写する際に何らかの形で役立つ可能性があると思います。ほとんどの場合、テーブルを使用することに同意しますが、ビジネスレポートを書いているときに、何百ものテーブルを含めたのに、円グラフがないのはなぜですか? コミュニティがこのトピックについてどう考えているのか興味があります。さらに参考文献を歓迎します。 いくつかのリンクを含めます。 http://www.juiceanalytics.com/writing/the-problem-with-pie-charts/ http://www.usf.uni-osnabrueck.de/~breiter/tools/piechart/warning.en.html この質問を終わらせるために、円グラフとワッフルグラフの例を作成することにしました。

7
機械学習モデルまたは推奨システムで地理または郵便番号を表す方法
モデルを構築していますが、地理的位置はターゲット変数の予測に非常に適していると考えています。各ユーザーの郵便番号を持っています。ただし、モデルに予測機能として郵便番号を含める最善の方法については完全にはわかりません。郵便番号は数字ですが、数字が上がったり下がったりしても意味がありません。30,000のすべての郵便番号を2値化し、それらを機能または新しい列として含めることができます(たとえば、{user_1:{61822:1、62118:0、62444:0など}}。しかし、これはトンを追加するようですモデルの機能の。 この状況を処理する最良の方法についての考えはありますか?

5
RのrandomForestは32レベル以上を処理できません。回避策は何ですか?
RのrandomForestパッケージは、32レベルを超える係数を処理できません。32レベルを超えると、エラーメッセージが表示されます。 32を超えるカテゴリを持つカテゴリカル予測子を処理できません。 しかし、私が持っているデータにはいくつかの要因があります。それらの一部には1000以上のレベルがあり、一部には100以上があります。52の米国の「状態」もあります。 だから、ここに私の質問があります。 なぜそのような制限があるのですか?randomForestは、単純な場合でも実行を拒否します。 > d <- data.frame(x=factor(1:50), y=1:50) > randomForest(y ~ x, data=d) Error in randomForest.default(m, y, ...) : Can not handle categorical predictors with more than 32 categories. 単にメモリ制限が原因である場合、scikit学習のrandomForeestRegressorは32を超えるレベルでどのように実行できますか? この問題を処理する最良の方法は何ですか?X1、X2、...、X50の独立変数があり、Yが従属変数であるとします。そして、X1、X2、X3には32を超えるレベルがあるとします。私は何をすべきか? 私が考えているのは、距離がYの差として定義されるX1、X2、X3のそれぞれに対してクラスタリングアルゴリズムを実行することです。3つの問題のある変数があるので、3つのクラスタリングを実行します。そして、各クラスタリングで、同様のレベルを見つけることができればと思います。そして、それらをマージします。 これはどのように聞こえますか?

4
勾配ブースティングマシンの精度は、反復回数が増えると低下します
caretR のパッケージを介して勾配ブースティングマシンアルゴリズムを試しています。 小さな大学入学データセットを使用して、次のコードを実行しました。 library(caret) ### Load admissions dataset. ### mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") ### Create yes/no levels for admission. ### mydata$admit_factor[mydata$admit==0] <- "no" mydata$admit_factor[mydata$admit==1] <- "yes" ### Gradient boosting machine algorithm. ### set.seed(123) fitControl <- trainControl(method = 'cv', number = 5, summaryFunction=defaultSummary) grid <- expand.grid(n.trees = seq(5000,1000000,5000), interaction.depth = 2, shrinkage …
15 machine-learning  caret  boosting  gbm  hypothesis-testing  t-test  panel-data  psychometrics  intraclass-correlation  generalized-linear-model  categorical-data  binomial  model  intercept  causality  cross-correlation  distributions  ranks  p-value  z-test  sign-test  time-series  references  terminology  cross-correlation  definition  probability  distributions  beta-distribution  inverse-gamma  missing-data  paired-comparisons  paired-data  clustered-standard-errors  cluster-sample  time-series  arima  logistic  binary-data  odds-ratio  medicine  hypothesis-testing  wilcoxon-mann-whitney  unsupervised-learning  hierarchical-clustering  neural-networks  train  clustering  k-means  regression  ordinal-data  change-scores  machine-learning  experiment-design  roc  precision-recall  auc  stata  multilevel-analysis  regression  fitting  nonlinear  jmp  r  data-visualization  gam  gamm4  r  lme4-nlme  many-categories  regression  causality  instrumental-variables  endogeneity  controlling-for-a-variable 

4
混合効果モデルにすべての可能性が含まれる場合の固定効果とランダム効果
混合効果モデルでは、可能なレベルがすべて含まれている場合(男性と女性の両方など)、固定効果を使用してパラメーターを推定することをお勧めします。さらに、含まれるレベルが母集団(可能性のある患者の宇宙から登録された患者)からのランダムなサンプルであり、平均値の代わりに母集団の平均と分散を推定する場合、変数を説明するためにランダム効果を使用することをさらにお勧めします個々の因子レベルの。 この方法で常に固定効果を使用することが論理的に義務付けられているのかどうか疑問に思っています。開発によって足/靴のサイズがどのように変化し、たとえば身長、体重、年齢に関連するかについての研究を検討してください。 SideSide{\rm Side}長年にわたる測定値が特定のフィート内にネストされ、独立していないという事実を説明するために、モデルに何らかの形で明確に含める必要があります。さらに、右と左はすべて存在する可能性です。さらに、特定の参加者の右足が左足よりも大きい(または小さい)ことは事実です。ただし、すべての人の足のサイズは足によって多少異なりますが、平均して右足が左足よりも大きいと考える理由はありません。サンプルに含まれている場合、これはおそらく、右足に内在するものではなく、サンプルに含まれる人々の遺伝学に関する何かによるものです。最後に、sの私のD Eをs私de{\rm side}は迷惑なパラメータのように見えますが、あなたが本当に気にするものではありません。 この例を作成したことに注意してください。それは何の役にも立たないかもしれません。アイデアを広めるためだけです。私が知っているすべての人にとって、旧石器時代の生存には大きな右足と小さな左足が必要でした。 このような場合、ランダムな効果としてモデルにを組み込むことは(より多く/より少なく/任意に)意味があるsの私のD Eをs私de{\rm side}でしょうか?ここで固定効果とランダム効果を使用する場合の長所と短所は何でしょうか?

2
機械学習のためにカテゴリ機能を数値にエンコードする
ニューラルネットワークなどの多くの機械学習アルゴリズムは、数値を扱うことを想定しています。そのため、カテゴリデータがある場合は、変換する必要があります。カテゴリ別の意味は、たとえば: 自動車ブランド:アウディ、BMW、シボレー...ユーザーID:1、25、26、28 ... ユーザーIDは数字ですが、単なるラベルであり、年齢や金額などの継続性の観点からは意味がありません。 そのため、基本的なアプローチでは、バイナリベクトルを使用してカテゴリをエンコードするようです。 アウディ:1、0、0 ... BMW:0、1、0 ...シボレー:0、0、1 ... カテゴリがほとんどない場合でも問題ありませんが、それ以上は少し非効率的に見えます。たとえば、10 000個のユーザーIDをエンコードする場合、10,000個の機能になります。 質問は、より良い方法はありますか?たぶん、確率を伴うものですか?

2
順序データまたは名義データのカテゴリをマージ/削減する方法は?
名義データまたは順序データのカテゴリ数を減らす方法を見つけるのに苦労しています。 たとえば、いくつかの名義因子と順序因子を持つデータセットで回帰モデルを構築するとします。このステップには問題はありませんが、名目上の特徴がトレーニングセットに観測されていないが、その後検証データセットに存在するという状況に遭遇することがよくあります。これは、モデルに(これまでに)目に見えないケースが存在する場合、当然、エラーにつながります。カテゴリを組み合わせたいもう1つの状況は、単純に観測値の少ないカテゴリが多すぎる場合です。 だから私の質問は: 以前の実世界の背景情報に基づいて多くの名義(および順序)カテゴリを組み合わせることが最善かもしれないと思いますが、体系的な方法(Rできればパッケージ)が利用可能ですか? どのようなガイドラインと提案、カットオフしきい値などを作成しますか? 文献で最も人気のあるソリューションは何ですか? 小さな名義カテゴリを新しい「OTHERS」カテゴリに結合する以外の戦略はありますか? 他にも提案がある場合は、お気軽にご連絡ください。

1
RのPROC Mixedとlme / lmerの違い-自由度
注:法的な理由で以前の質問を削除する必要があったため、この質問は再投稿です。 SASのPROC MIXED をR lmeのnlmeパッケージの関数と比較していると、やや紛らわしい違いを見つけました。より具体的には、異なるテストの自由度はとの間PROC MIXEDで異なり、lmeなぜだろうと思いました。 次のデータセットから開始します(以下のRコード)。 ind:測定が行われる個人を示す因子 fac:測定が行われる臓器 trt:治療を示す因子 y:連続応答変数 アイデアは、次の単純なモデルを構築することです: y ~ trt + (ind):indランダムな要因として y ~ trt + (fac(ind)):facにネストされたindランダムな要因として、 最後のモデルでは特異性が生じることに注意してください。とのyすべての組み合わせに対しての値は1つだけです。indfac 最初のモデル SASでは、次のモデルを作成します。 PROC MIXED data=Data; CLASS ind fac trt; MODEL y = trt /s; RANDOM ind /s; run; チュートリアルによると、使用しているRの同じモデルnlmeは次のようになります。 > require(nlme) > options(contrasts=c(factor="contr.SAS",ordered="contr.poly")) > m2<-lme(y~trt,random=~1|ind,data=Data) 両方のモデルは、係数とそのSEに対して同じ推定値を与えますがtrt、の効果に対してF検定を実行する場合、異なる自由度を使用します。 SAS …
12 r  mixed-model  sas  degrees-of-freedom  pdf  unbiased-estimator  distance-functions  functional-data-analysis  hellinger  time-series  outliers  c++  relative-risk  absolute-risk  rare-events  regression  t-test  multiple-regression  survival  teaching  multiple-regression  regression  self-study  t-distribution  machine-learning  recommender-system  self-study  binomial  standard-deviation  data-visualization  r  predictive-models  pearson-r  spearman-rho  r  regression  modeling  r  categorical-data  data-visualization  ggplot2  many-categories  machine-learning  cross-validation  weka  microarray  variance  sampling  monte-carlo  regression  cross-validation  model-selection  feature-selection  elastic-net  distance-functions  information-theory  r  regression  mixed-model  random-effects-model  fixed-effects-model  dataset  data-mining 

1
順序付けされていないカテゴリカル予測子変数のレベル数を減らす
SVM、ランダムフォレスト、その他の分類器などの分類器をトレーニングしたい。データセットの特徴の1つは、1000レベルのカテゴリ変数です。この変数のレベル数を減らす最善の方法は何ですか。Rで呼び出された関数があるcombine.levels()にHmiscのまれなレベルを組み合わせたパッケージが、私は他の提案を探していました。

3
ワンホットエンコーディングとダミーエンコーディングの問題
私は、kレベルのカテゴリ変数がダミーのエンコードでk-1変数でエンコードされる必要があるという事実を認識しています(同様に、多値のカテゴリ変数の場合)。さまざまな回帰メソッド、主に線形回帰、ペナルティ付き線形回帰(Lasso、Ridge、ElasticNet)、ツリーベース(ランダムフォレスト)のダミーエンコーディングに対してワンホットエンコーディング(つまり、代わりにk変数を使用)がどのくらい問題になるのかと思っていました。 、勾配ブースティングマシン)。 線形回帰では、多重共線性の問題が発生することを知っています(実際には、OHEを使用して線形回帰を問題なくフィッティングしましたが)。 しかし、それらすべてでダミーエンコーディングを使用する必要がありますか?ワンホットエンコーディングを使用した場合、結果はどのように間違っていますか? 私の焦点は、複数の(カーディナリティが高い)カテゴリー変数を使用した回帰モデルでの予測にあります。そのため、信頼区間には興味がありません。

3
データマイニングのために因子レベルを組み合わせるためのRパッケージ?
ファクターのすべてのレベルの比率が特定のしきい値よりも小さいファクターのレベルを組み合わせるRのパッケージ/関数を誰かが実行したかどうか疑問に思いますか?具体的には、私が実施するデータ準備の最初のステップの1つは、少なくとも合計の2%を構成しない、因子のまばらなレベルを(たとえば、「その他」と呼ばれるレベルに)まとめることです。これは、監視なしで行われ、目的がマーケティングの活動をモデル化することである場合に行われます(これらの非常に小さな発生が非常に重要である可能性がある不正検出ではありません)。あるしきい値の割合に達するまでレベルを縮小する関数を探しています。 更新: これらの素晴らしい提案のおかげで、私はかなり簡単に関数を書きました。ただし、比率<最小のレベルを折りたたむことは可能であり、再コーディングされたレベルが<最小であるため、比率>最小の最低レベルを追加する必要があることに気付きました。おそらくより効率的ですが、動作するようです。次の拡張は、折りたたみロジックを新しいデータ(検証セットまたは将来のデータ)に適用するための「ルール」を取得する方法を理解することです。 collapseFactors<- function(tableName,minPercent=5,fillIn ="RECODED" ) { for (i in 1:ncol(tableName)) { if(is.factor(tableName[,i]) == TRUE) #process just factors { sortedTable<-sort(prop.table(table(tableName[,i]))) numberToCollapse<-length(sortedTable[sortedTable<(minPercent/100)]) if (sum(sortedTable[1:numberToCollapse])<(minPercent/100)) { numberToCollapse=numberToCollapse+1 #add next level if < minPercent } if(numberToCollapse>1) #if not >1 then nothing to collapse { lf <- names(sortedTable[1:numberToCollapse]) levels(tableName[,i])[levels(tableName[,i]) %in% lf] <- fillIn …

1
カテゴリカルデータのペナルティ付き方法:因子のレベルを組み合わせる
ペナルティモデルは、パラメーターの数がサンプルサイズ以上のモデルを推定するために使用できます。この状況は、カテゴリデータまたはカウントデータの大きなスパーステーブルの対数線形モデルで発生する可能性があります。これらの設定では、他の因子との相互作用の観点からそれらのレベルが区別できない因子のレベルを組み合わせることにより、テーブルを折りたたむことが望ましいまたは役立つこともよくあります。2つの質問: LASSOやエラスティックネットなどのペナルティモデルを使用して、各要素内のレベルの折りたたみ性をテストする方法はありますか? 最初の質問に対する答えが「はい」の場合、レベルの崩壊とモデル係数の推定が1つのステップで発生するように設定できますか?

1
カーディナリティが大きく異なる場合の高カーディナリティ(多カテゴリ)カテゴリカルフィーチャのエンコード
カテゴリ機能のエンコードに関する質問を調べてきましたが、私の問題を説明するものは見つかりませんでした。見逃した場合はお詫びします。 ほぼ同じ重要度のバイナリ変数とノミナル変数のデータセットがあるとします。 ほとんどの分類子はカテゴリ型を直接処理できないため、これらを変換する必要があります。たとえば、この回答で説明されているように、ワンホットエンコーディング(ダミー変数)を使用します。 1つのカテゴリ変数のカーディナリティが高い場合、この方法で他の(たとえばバイナリ)変数を "圧倒"してエンコードしませんか?「カーディナリティー」とは、名目変数内のカテゴリーの数を意味します。 分類子モデルが変数間の関係を認識している場合、同じ変数の導入されたバイナリダミー「コンポーネント」間の関係を不必要に見つけようとしないのではないでしょうか。 もしそうなら、これはどのように対処できますか? 私が考えることができる最良の解決策は、高カーディナリティのプロパティを論理的に「バケット」にグループ化することですが、問題となるのに十分な一意の値がある場合、手動でそれらをグループ化すると、労力もかかります。 編集:これは取るに足らないことであり、部分的にのみ問題に対処しますが、私がやったことの1つは、比較的まれなすべてのカテゴリ値を新しい「その他」のカテゴリに置き換えることです。値を「まれ」と見なす場合、しきい値を最適化するのに時間がかかる可能性がありますが、少なくともこのアプローチは自動化できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.