6

Rのarulesパッケージは、クラス'transactions'を使用します。したがって、この関数apriori()を使用するには、既存のデータを変換する必要があります。2列で約1.6mmの行を持つマトリックスがあり、次のようにデータを変換しようとしました。

transaction_data <- as(split(original_data[,"id"], original_data[,"type"]), "transactions")

ここで、original_dataは私のデータマトリックスです。データ量が多いため、64GBのRAMを搭載した最大のAWSAmazonマシンを使用しました。しばらくすると

結果のベクトルが「AnswerType」のベクトル長制限を超えています

マシンのメモリ使用量はまだ60%で「のみ」でした。これはRベースの制限ですか?サンプリングを使用する以外にこれを回避する方法はありますか?データの1/4のみを使用する場合、変換は正常に機能しました。

編集:指摘したように、変数の1つは文字ではなく要因でした。変更後、変換は迅速かつ正確に処理されました。

4

1 に答える 1

3

関数の1つが(たとえば、floatではなく)整数を使用して値にインデックスを付けるため、問題が発生していると思われます。いずれにせよ、サイズはそれほど大きくないので、これは驚くべきことです。おそらく、データには、要因としての文字など、他の問題がありますか?

ただし、一般的には、を介してメモリマップトファイルを使用することを強くお勧めします。これは、またはbigmemoryを介して分割および処理することもできます。データのオフロードが機能する場合は、はるかに小さいインスタンスサイズを使用して、$$を節約することもできます。:)bigsplitmwhich

于 2011-09-05T03:43:56.540 に答える