私は巨大なデータセットを計算しようとすると私のメモリエラーを与えるので、私はapriori using pythonからダウンロードしたaprioriアルゴリズムからいくつかのラインコードを分解しようとします。 ここに私が見つけたばかりの問題があります。Pythonのプロセスを分解してください
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
return set([i.union(j) for i in itemSet for j in itemSet if len(i.union(j)) == length])
私は、エラーがトリガされたときに戻りVARの実際のサイズを知りたいので、私はこれらのコードは、このように故障してみてください。
def joinSet(itemSet, length):
"""Join a set with itself and returns the n-element itemsets"""
ret = []
for i in itemSet:
for j in itemSet:
if len(i.union(j)) == length:
ret.append(i.union(j))
return ret
私はすべてのステップを監視できますが、私の内訳コードでは元のものと同じ結果が得られません。
私はとにかく迷っていますか? また、もし私のアプローチが間違っていたらあなたが私に実際の解決策を与えることができれば非常に感謝します。 ありがとうございます。
だけで削除してください'[]'内部のセットです。これは、リストをセットに変換することで直ちに破棄されるため、リストが不必要に作成されます。それが利用可能な場合は、バグレポートを作成するか、元のソースにリクエストを引き渡すこともできます。なぜなら、それは私が見ることができる欠点のない最適化だからです。 –
ええ、最初のコードセグメントでは、リストは返される前にセットに変換されます。 2番目のコードセグメントでは、リストを返すだけです。よかったよ、 – Pedro