2013-02-13 35 views
1

我寫了數據挖掘apriori算法,它在小型測試數據上運行良好,但我有問題在較大的數據集上運行。數據挖掘:Apriori問題。最小支持

我想要生成經常一起購買的物品的規則。

我的小測試數據是5筆交易和10個產品。

我的大測試數據是1100萬筆交易和2700多種產品。

問題:最小支持和過濾非頻繁項目。 讓我們想象我們對頻率爲60%或更多的物品感興趣。 frequency = 0.60;

當我計算Min-support爲一個小數據集與60%頻率算法將刪除所有購買少於3倍的項目。 Min-support = numberOfTransactions * frequency;

但是,當我試圖爲大數據集做同樣的事情時,算法會在第一次迭代後過濾幾乎所有的項目集,只有幾件能夠滿足這種平面的項目。

所以我開始降低這個飛機的更低和更低的速度,運行算法多次。但是甚至沒有5%給出期望的結果。我不得不降低我的頻率百分比,直到0.0005,使它至少有50%的項目涉及第一次迭代。

您對目前的情況有什麼看法?可能是數據問題,因爲它是人爲產生的? (微軟冒險工程版) 或者它是我的代碼或min支持計算問題?

也許你可以提供任何其他解決方案或更好的方式來做到這一點?

謝謝!

回答

0

也許這就是您的數據是如何。

如果您有很多不同的項目,並且每次交易的項目很少,項目共發生的機率很低。

你有沒有驗證結果,是不正確的修剪,或者算法是否正確,你的參數不好?

你真的可以命名Apriori修剪但不應該修剪的項目集嗎?

問題是,是的,選擇參數很難。不,apriori不能使用自適應閾值,因爲這不會滿足單調性要求。您必須對所有項目集大小使用相同的閾值。

0

其實這一切都取決於你的數據。對於一些真實的數據集,我必須將支持閾值設置爲低於0.0002以獲得一些結果。對於其他一些數據集,我使用了0.9。這真的取決於你的數據。

順便說一下,Apriori和FPGrowth存在變異,可以同時考慮多個最小支持度,以針對不同的項目使用不同的閾值。例如,CFP-Growth或MIS-Apriori。還有一些專門用於挖掘罕見項目集或罕見關聯規則的算法。如果您對這個主題感興趣,可以查看我提供以下算法的軟件:http://www.philippe-fournier-viger.com/spmf/