0

私のデータは、271の機能を備えた1,785,000レコードです。モデルの構築に使用される機能の数を減らしようとしています。

Q1。データを調べてみると、一部の機能はほとんどすべて欠落データであることがわかりました。たとえば、25レコードだけがこの機能の値を持ち、他のレコードは値が欠落しているので、十分な情報がなく、それらの機能を削除する方がよいと思いました。右?そして、私が正しければ、どのレベルでそれを行うことができますか?つまり、各機能の90%、80%などが欠落している場合、これらの機能を削除することを決定できるのはいつですか?(従属変数がN / Yであり、データ全体の%1.157のみがYに属していることを考慮すると)。

Q2。データセット内の個人ごとに、64個のtrait_typeがリストされており、それぞれが値[1または3または5]のいずれかを取ることができます。私の質問は次のとおりです。一部の特性タイプがすべてのレコードに対して値[5]のみを取得するか、データが欠落している場合、その値に値がありますか、それともその機能を削除できますか?

Q3。これらの機能を削除することを選択した場合、Rのdata.frameから列を削除するにはどうすればよいですか?

ありがとうございました

更新:caretパッケージを使用して変数選択を実行 しようとしています。私はこれを適用しました:

ctrl<- rfeControl(functions = lmFuncs, method="cv", verbose = FALSE, returnResamp= 
"final")

lmprofile<- rfe(x,y, sizes = subsets, rfeControl = ctrl)

ここxで、は270個の従属変数を持つdata.frameであり、yは値Y/Nを持つ独立変数の係数です。このエラーが発生しました:

Error in { : 
  task 1 failed - "contrasts can be applied only to factors with 2 or more levels"
enter code here
In addition: There were 11 warnings (use warnings() to see them)

助けてください?

4

1 に答える 1

1

1 つの列のデータの多くが欠落しているからといって、その列が予測不能になるわけではなく、その列に同じ値が多数含まれているのと同じです。

もちろん、カットオフがあります。その列が (多くの) いくつかのケースを区別するのに役立つだけである場合は、それを削除して、モデル全体の強度に少しだけ影響を与えることができます。

列を保持するかどうかを決定するのに役立つように、それを使用して単変量モデルを構築できます。データセットにはその列と従属変数のみが含まれ、そのモデルの強度を確認できます。ランダムよりもはるかに優れている場合は、おそらく列を削除しても安全です。

于 2012-04-20T06:58:34.073 に答える