機器學習處理問題如何選擇一個合適的演算法?

CDA 資料分析師發表於2019-03-06


我們在進行資料分析或者資料探勘工作的時候,總會遇到很多的問題,而解決這些問題的方式有很多。如果需要我們用機器學習來處理,那麼就需要我們根據演算法去選擇一個合適的演算法。但問題是,用機器學習處理問題,該如何選擇一個合適的演算法呢?下面我們就給大家介紹一下選擇演算法的流程,希望這篇文章能夠更好地幫助大家理解機器學習。

選擇演算法是一個比較麻煩的事情,但是並不是不能選擇,選擇就需要我們十分細心,這樣我們才能夠選擇出一個合適的演算法,以便於我們更好的處理問題。選擇演算法首先需要分析業務需求或者場景,這一步完成以後,就需要我們初探資料,看看自己是否需要預測目標值,如果需要的話,那麼就使用監督學習,當然,使用監督學習的時候,如果發現了目標變數,如果是離散型,那麼就使用分類演算法,如果是連續型,那麼就使用迴歸演算法。當然,如果我們發現不需要預測目標值,那麼就使用無監督學習,具體使用的演算法就是K-均值演算法、分層聚類演算法等其他演算法。

當我們充分了解資料及其特性,有助於我們更有效地選擇機器學習演算法。採用以上步驟在一定程度上可以縮小演算法的選擇範圍,使我們少走些彎路,但在具體選擇哪種演算法方面,一般並不存在最好的演算法或者可以給出最好結果的演算法,在實際做專案的過程中,這個過程往往需要多次嘗試,有時還要嘗試不同演算法。但是對於初學者,還是根據上面選擇演算法的方式選擇演算法為好。

說完了選擇演算法的步驟,下面我們就說一下spark在機器學習方面的優勢,在大資料上進行機器學習,需要處理全量資料並進行大量的迭代計算,這要求機器學習平臺具備強大的處理能力。Spark與Hadoop相容,它立足於記憶體計算,天然的適應於迭代式計算,Spark是一個大資料計算平臺,在這個平臺上,有我SQL式操作元件Spark SQL;功能強大、效能優良的機器學習庫Spark MLlib;還有影像處理的Spark Graphx及用於流式處理的Spark Streaming等,其優勢十分明顯。

優勢一:在完整的大資料生態系統中,有我們熟悉的SQL式操作元件Spark SQL,還有功能強大、效能優良的機器學習庫、影像計算及用於流式處理等演算法。

優勢二:在高效能的大資料計算平臺中,由於資料被載入到叢集主機的分散式記憶體中。資料可以被快速的轉換迭代,並快取後續的頻繁訪問需求。基於記憶體運算,Spark可以比Hadoop快100倍,在磁碟中運算也比hadoop快10倍左右。

優勢三:這個演算法能夠與Hadoop、Hive、HBase等無縫連線:Spark可以直接訪問Hadoop、Hive、Hbase等的資料,同時也可使用Hadoop的資源管理器。

在這篇文章中我們給大家介紹了機器學習處理問題如何選擇一個合適的演算法以及spark演算法的優勢的內容,通過這篇文章相信大家已經找到了使用機器學習解決資料分析以及資料探勘問題的方法了吧?希望這篇文章能夠幫助到大家。

相關文章