2011-12-27 56 views
2

我正在研究二元分類問題,即需要將我的數據分爲兩類。每個實體都提取了5個特徵。選擇機器學習算法和工具

現在我想決定我應該使用哪種算法。 另外我想知道什麼是最方便的語言,它可能已經支持這個算法,我可以實現它。

我只是ML的初學者。所以這可能是一個非常愚蠢的問題。但任何幫助都會很棒。

感謝和問候, 羅希特

回答

4

如果你是新的機器學習,你應該採取溫和的方法來學習它。不要指望用「最好」的算法(它不存在)。相反,在機器學習上找到一些好的資源,互聯網上有許多免費的信息,例如維基百科或講義。或者,如果你需要更多的結構,也有書。因此,考慮到這一點......

1)選擇一個簡單的分類算法開始。它不一定是'最好的',但它必須是一個你可以掌握的簡單的。嘗試使用更復雜的方法毫無意義,因爲如果它產生意想不到的輸出,您將無法找出原因。也許從一個簡單的聚類算法開始,如k-means

2)選擇你的語言/環境是你熟悉的任何東西。基本的機器學習算法在很多地方都可用。數學家可能熟悉Matlab或R.程序員可以在Python,C,Java,Fortran中找到庫...如果您不熟悉任何統計軟件包,並且對編程不熟悉,或許這會有所幫助 - https://stackoverflow.com/questions/335063/whats-the-easiest-way-to-learn-programming

如果您不是新機器學習和已經熟悉了幾種方法,我建議你檢查出這個問題: When to choose which machine learning classifier?

2

爲了解決一個簡單的分類問題,我會建議使用迴歸。這很容易理解和實施。有很多更復雜的算法可供您嘗試,例如支持向量機,神經網絡等等。但是請記住,在機器學習中,通常不是您選擇使用的算法,因爲它很重要擁有精心挑選的功能,以獲得良好的數據集。

還有使用分類或聚類算法的問題。如果你有一個已經標記的數據集,我會建議分類。但是,如果您的數據集標記爲而非,則分類算法將不起作用,您將不得不使用羣集。 K-means是一個簡單,但廣泛使用和有效的解決方案。就語言/工具/環境/工具而言,如果您沒有可靠的編程背景,我會建議Octave,R或Matlab。如果你這樣做,試着用你最流利的語言找到一個好的庫。我可以爲java提供一個好的,開源的機器學習庫 - (Mahout)。

最後,我推薦this斯坦福在線機器學習課程。它是免費的,適合初學者,並且不需要任何其他科學或工程領域的背景知識。

1

如果您是機器學習的新手,可以在斯坦福在線機器學習課程(http://www.ml-class.org/)中查看一些機器學習算法。該類非常實用,您可以學習一些基本的分類算法(如邏輯迴歸,支持向量機,神經網絡)。還提供了一些分類練習分配(以倍頻程/ matlab)。並且有一些實際的方法來開發分類系統。它可能會幫助你。