Python大規模機器學習》—1 邁向可擴展性的第一步

      網友投稿 615 2025-03-31

      第1章


      邁向可擴展性的第一步

      歡迎閱讀本書!你將學習關于使用Python實現機器學習可擴展性的知識。

      本章將討論如何用Python從大數據中進行有效學習,以及如何使用單機或其他機器集群進行這樣的學習,比如可從Amazon Web(AWS)或Goolge云平臺訪問這樣的集群。

      在本書中,我們將使用由Python實現的可擴展的機器學習算法。這意味著它們能處理大量數據并且不會因為內存限制而崩潰。當然,運行它們也需要一段合理的時間,這對于數據科學原理來說是可管理的,并且也可在生產中部署。本章圍繞解決方案(如流數據)、算法(如神經網絡或集成樹)和框架(如Hadoop或Spark)展開。我們還將提供一些關于機器學習算法的基本提示,以解釋如何使這些算法具有可擴展性,并可適用于具有海量數據集的問題。

      考慮到這些問題,你需要學習基礎知識以便弄清本書的寫作背景,同時設置好所有基本工具以便立即開始閱讀本章。

      本章討論以下主題:

      可擴展性實際上意味著什么

      處理數據時應注意哪些瓶頸

      本書將幫助你解決什么問題

      如何使用Python有效地分析數據集

      如何快速設置用戶機器來運行本書中給出的示例

      1.1詳細解釋可擴展性

      現在大數據被大肆宣傳,但大數據集早在其術語本身被創造出來之前就已經存在了。大量的DNA序列文本和來自射電望遠鏡的大量數據總是對科學家和數據分析人員構成挑戰。由于大多數機器學習算法具有O(n2)甚至O(n3)的計算復雜度(其中n為訓練樣本數),致使此前數據科學家一直被大數據集所困擾,為此數據分析人員只能采用更有效的數據算法。當機器學習算法經適當的設置后能處理大數據并可工作時,它就被認為具有可擴展性。因為有大量實例或變量,或因為二者兼有,數據集會變大,但可擴展性算法能夠按其運行時間幾乎與問題規模呈線性關系的方式來處理它。因此,這只是一個用更多數據按1∶1交換時間(或更多計算能力)的問題。相反,如果機器學習算法面對大量數據時無法擴展,只是停止工作或以非線性方式(如指數規律)增加運行時間的話,那么學習就會變得不可行。

      廉價數據存儲器、大容量RAM和多核處理器CPU的引進極大地改變了這一切,甚至提高了單臺筆記本電腦分析大量數據的能力。過去幾年里,另一個重大的游戲變革者出現了,它把注意力從單臺強大的機器轉移到商用計算機集群(更便宜、更容易訪問)。這一重大變化是MapReduce和開源框架Apache Hadoop及其Hadoop分布式文件系統(HDFS)的引入,總之,是計算機網絡上并行計算的引入。

      為了弄清楚這兩個變化如何對解決大規模問題的能力產生深刻和積極的影響,我們首先應該討論是什么在實際阻止對大型數據集的分析。

      不管問題是什么,最終你會發現是因為以下問題使你不能分析數據:

      計算會影響執行分析所花費的時間

      I/O會影響單位時間內從存儲器讀取到內存的數據量

      內存會影響一次處理的大數據量

      你的計算機有局限性,這些限制將決定你是否能從數據中學習,以及在碰壁之前需要多長時間。許多密集計算中出現的I/O問題將限制你對數據的快速訪問,最后,內存限制會使你只能處理一部分數據,這樣就限制了你可能訪問的矩陣計算類型,甚至影響結果的精度和準確性。

      以上每一項硬件限制都會有影響,其嚴重程度取決于所分析的數據:

      高數據,特點是具有大量案例

      《Python大規模機器學習》—1 邁向可擴展性的第一步

      寬數據,特點是具有大量特征

      高寬的數據,包含大量案例和特征

      稀疏數據,特點具有大量零元素或能轉換成零的元素(也就是說,數據矩陣可能很高且/或寬,但有信息價值,但不是所有的矩陣條目都具有信息價值)。

      最后,來看要用來從數據中進行學習的算法。每一種算法都有其自身的特點,即能夠通過不同偏差或方差的解決方案來映射數據。因此,就你已經通過機器學習解決的問題而言,基于經驗或經過實踐考驗過的某些算法會比其他算法更好。尤其是大規模問題,選用算法時必須考慮其他因素:

      算法復雜性,即數據中的行數和列數是否以線性或非線性方式影響計算次數。大多數機器學習解決方案都是二次或三次復雜度算法,這樣會嚴重地限制它們對大數據的適用性。

      模型參數個數,這不僅僅是方差估計(過擬合)問題,而且涉及計算它們所需的時間。

      并行優化,即是否能輕松地將計算拆分為節點或CPU核心,還是只能進行單個連續優化?

      是從全部數據中學習,還是從單個示例或小批量數據中學習?

      如果用數據特征和該類算法來交叉評估硬件限制,就會得到一系列會阻止你從大規模分析中得到結果的可能存在的問題組合。從實際角度來看,所有的問題組合都可通過以下三種方法解決:

      向上擴展,即通過修改軟件或硬件(更大內存、更快CPU、更快存儲磁盤和GPU)來提高單臺機器的性能。

      向外擴展,即利用外部資源(其他存儲磁盤、CPU與GPU等)在多臺機器上分散計算(和性能)。

      向上和向外擴展,即綜合利用向上和向外擴展方法。

      1.1.1大規模實例

      有激勵性的示例讓事情變得更清晰,更令人難忘,以兩個簡單示例為例:

      網絡廣告如此廣泛傳播并吞噬大量傳統媒體份額時,預測點擊率(CTR)會幫助你賺到很多錢。

      客戶搜索網站提供的產品和服務時,如果能猜出他們到底想要什么,這樣會大大增加銷售機會。

      這兩種情況都會產生大數據集,因為它們是由用戶在互聯網上交互產生的。

      取決于我們假設的業務(在這里我們想象有些大型企業),顯然這兩個示例中每天都要研究數以萬計的數據點。廣告案例中,數據無疑是一個連續信息流,最新的數據更能代表市場和消費者,并且能取代舊數據。搜索引擎案例中,數據具有廣泛性,因為向客戶提供結果時所應用的功能更加豐富,例如,如果你在旅行,需要提供相當多的酒店、地點和服務等功能。

      顯然,對于這些情況可擴展性是一個問題:

      必須每天從日益增長的數據中學習,而且還必須學得更快,因為在學習過程中,新的數據不斷出現。必須處理由于維數太高或太大而不適合放入內存的數據。

      經常更新機器學習模型以適應新數據。這時需要一個能及時處理信息的算法。由于數據量原因無法處理O(n2)或O(n3)復雜度;需要一些具有較低復雜度的算法(如O(n)),或將數據劃分,讓n變得更小。

      必須能夠快速預測,因為預測必須只提供給新客戶。同樣,算法的復雜性也很重要。

      可以通過以下方法解決可擴展性問題:

      通過減少問題的維數進行擴展;例如,在搜索引擎示例中,可以有效選擇要使用的相關特征。

      使用正確算法進行擴展;例如,廣告數據示例中采用適合數據流的學習算法。

      利用多臺機器縮短學習過程。

      通過在單臺服務器上有效使用多處理和矢量化來擴展部署過程。

      本書將告訴你哪些實際問題適合采用哪種解決方案或算法。之后,你就能自動地根據時間和運行方面的特定約束(CPU、內存或I/O),找到我們提議的最合適的解決方案。

      Python 機器學習

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格保護不能修改怎么辦(excel表格無法編輯怎么取消保護)
      下一篇:PaddleOCR文字檢測、標注與識別詳細記錄
      相關文章
      亚洲综合自拍成人| 亚洲人成无码www久久久| 精品亚洲一区二区三区在线播放| 亚洲 欧洲 日韩 综合在线| 亚洲国产综合自在线另类| 久久夜色精品国产亚洲| 亚洲乳大丰满中文字幕| 亚洲色成人网站WWW永久| 亚洲精品午夜无码专区| 国产亚洲精品线观看动态图| 亚洲人成无码www久久久| 国产偷国产偷亚洲高清在线| 亚洲国产av无码精品| 亚洲国产精品成人久久蜜臀| 国产精品亚洲专一区二区三区| 亚洲av乱码中文一区二区三区| 亚洲一区AV无码少妇电影| 亚洲一区无码中文字幕乱码| 亚洲成a人片在线观看精品| 亚洲成在人线电影天堂色| 亚洲综合在线成人一区| 亚洲天天做日日做天天欢毛片| 亚洲日本一区二区| 亚洲成人黄色网址| 亚洲人色大成年网站在线观看| 亚洲视频在线观看2018| 亚洲AV综合色区无码一二三区| 国产亚洲美女精品久久| 久久精品国产亚洲精品| 亚洲成在人线av| 亚洲视频手机在线| 国产成人亚洲合集青青草原精品| 亚洲欧美日韩中文字幕在线一区| 苍井空亚洲精品AA片在线播放| 亚洲Av无码乱码在线播放| 丁香五月亚洲综合深深爱| 亚洲国产成人久久精品影视| 亚洲精品国产福利片| 亚洲中文字幕AV每天更新| 日韩亚洲国产二区| 亚洲精品tv久久久久久久久 |