天天看點

《大資料機器學習實踐探索》 ---- 總目錄架構平台介紹篇資料處理篇大資料機器學習篇算法原理篇SQL 優化大資料可視化實踐案例篇筆試面試篇其他參考文獻

@ toc

本專欄持續更新中,内容還未完整的請稍安勿躁,部分内容有參考其他書籍或是網絡文獻,都會給出原始出處

21 世紀必将是大資料的時代,是智能資訊處理的黃金時代。

BAT 公司在 2013年左右的資料量如下:

  • 2013 年百度相關技術報告稱,百度資料總量接近 1000PB,網頁的數量大是幾千億個,每年更新幾十億個,每天查詢次數幾十億次。
  • 2013年騰訊相關技術報告稱,騰訊約有8 億使用者,4億移動使用者,總存儲資料量經

壓縮處理以後在 100PB左右,日新增 200TB 到 300TB,月增加 10%的資料量。

  • 2013年阿裡巴巴相關技術報告稱,總體資料量為 100PB,每天的活躍資料量已經超過 50TB,共有4億條産品資訊和2 億多名注冊使用者,每天通路超過 4000 萬人次。

為了采集、存儲和分析大資料,網際網路公司嘗試研發大資料技術,在衆多技術方案中,開源系統 Hadoop、 Spark、Elasticsearch等 成為應用最廣泛的大資料技術,由于它們的使用者量巨大,已經初步成為大資料技術規範。

本專欄《大資料處理實踐探索》 通過記錄基于Python 的大資料處理實踐探索案例,力圖将大資料與機器學習相結合 産生新的實踐落地思路。 網絡上的大資料相關博文多是基于java 或者Scala ,本專欄的目的在于 基于python 将大資料(pyspark、 Elasticsearch、sklearn ...),資料開發,與資料分析相結合。 并在實踐内容上給出一定指導,最後本專欄特地針對筆試面試高頻題方面給出了分享,希望能夠在找工作時候幫助到大家。

本專欄 于 2021年7月20日 正式更名為《大資料機器學習實踐探索》,并将主要更新:

基于大資料的機器學習最佳實踐

中的主要内容,圍繞大資料環境下的機器學習,基于spark 給大家介紹最新的大資料機器學習算法。

github 位址:

big_data_repo

架構平台介紹篇

大資料嘗試從海量資料中,通過一定的分布式技術手段,挖掘出有價值的資訊,最終提供給使用者,進而産生實用價值和商業價值。由于資料本身的多樣性以及資料分析需求的多元化,大資料技術體系非常複雜,涉及的元件和子產品衆多。

為了便于讀者從頂層架構上對大資料有一個清楚的認識,本部分嘗試首先概括大資料技術架構。

雲平台

通過我和北美工程師的合作,他們将AWS 已經當成了一種基礎設定,如果你還不了解雲計算,或者任意一家雲平台的話,你out 了。 學習雲計算或者雲平台的途徑最好就是通過他們的文檔。國内雲平台如同雨後春筍般蓬勃發展,但最值得借鑒的還是鼻祖AWS.

安裝與調試

本小節主要針對開發環境搭建,叢集環境搭建進行介紹

大資料搜尋架構 Elasticsearch

Elasticsearch是一個實時的分布式搜尋和分析引擎,使得人們可以在一定規模上和一定速度上實作資料檢索,常用于全文字檢索,結構化檢索、分析以及三種的結合應用。Wikipedia、Guardian、Stack Overflow、Github都在使用Elasticsearch實作自己的相關檢索工作。

大資料架構 spark

《大資料機器學習實踐探索》 ---- 總目錄架構平台介紹篇資料處理篇大資料機器學習篇算法原理篇SQL 優化大資料可視化實踐案例篇筆試面試篇其他參考文獻

Spark最初誕生于美國加州大學伯克利分校(UC Berkeley)的AMP實驗室,是一個可應用于大規模資料處理的快速、通用引擎。2013年,Spark加入Apache孵化器項目後,開始獲得迅猛的發展,如今已成為Apache軟體基金會最重要的三大分布式計算系統開源項目之一(即Hadoop、Spark、Storm)。Spark最初的設計目标是使資料分析更快——不僅運作速度快,也要能快速、容易地編寫程式。為了使程式運作更快,Spark提供了記憶體計算,減少了疊代計算時的IO開銷;而為了使編寫程式更為容易,Spark使用簡練、優雅的Scala語言編寫,基于Scala提供了互動式的程式設計體驗。雖然,Hadoop已成為大資料的事實标準,但其MapReduce分布式計算模型仍存在諸多缺陷,而Spark不僅具備Hadoop MapReduce所具有的優點,且解決了Hadoop MapReduce的缺陷。Spark正以其結構一體化、功能多元化的優勢逐漸成為當今大資料領域最熱門的大資料計算平台。

WSL 是 Windows Subsystem for Linux windows下的linux子系統,由于直接在windows 上安裝pyspark 跑很多基于linux 的庫的機器學習庫很費勁,有什麼辦法是省時省力并且占用資源少的方式呢?相比虛拟機動辄8g 左右的記憶體占用量,wsl 當然是一個非常好的選擇。

資料處理篇

資料接入

資料接入就是對于不同的資料來源、不同的合作夥伴,完成資料采集、資料傳輸、資料處理、資料緩存到行業統一的資料平台的過程。

資料清洗

資料清洗, 是整個資料分析過程中不可缺少的一個環節,其結果品質直接關系到模型效果和最終結論。在實際操作中,資料清洗通常會占據分析過程的50%—80%的時間。

資料清洗的目的從兩個角度來講:

一、是為了解決資料品質問題

二、是讓資料更适合做挖掘、展示、分析

ETL

ETL,是英文Extract-Transform-Load的縮寫,用來描述将資料從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。

EDA

還有比pandas profiling 更好使的python EDA 工具嗎?

經典Titanic 資料集的探索性資料分析報告:

https://pandas-profiling.github.io/pandas-profiling/examples/master/titanic/titanic_report.html

特征工程

特征工程的主要目的是放大資料的價值。有這麼一句話在業界廣泛流傳:資料和特征決定了機器學習的上限,而模型和算法隻是逼近這個上限而已

大資料機器學習篇

在大資料領域中,機器學習幾乎無處不在,即便我們沒有特意引用它們,它們也經常出現在大資料應用中,例如:搜尋、推薦、預測和資料挖掘等。随着網際網路的高速發展,資料量不斷爆發式增長,資料次元越來越豐富,這也為機器學習的發展和應用提供了良好的土壤,機器學習的良好成果也反向讓資料産生更大的價值,成為真正的“大資料”,兩者相輔相成,互相促進,讓資料越來越智能。

算法原理篇

SQL 優化

sql 優化無處不在,核心可以概括為幾點:

  1. 有效使用索引
  2. 根據查詢計劃持續優化
  3. 建構高效的sql 語句

大資料可視化

一圖勝千言,視覺傳達的資訊量帶寬遠大于文字。

實踐案例篇

基于大資料的資料處理

基于大資料的資料分析

使用pyspark 進行kaggle比賽Give me some credit資料集的模組化與分析

筆試面試篇

筆試面試題複習的核心要義是什麼? 一言以蔽之,基礎+原理。

其他

參考文獻

Spark入門教程(Python版)