許多人對數據科學和機器學習感到困惑。下面我們一起看下該如何學習:
一、數據科學
在技術的大規模傳播期間,人類產生了大量的數據,數量大到無法處理和可視化。這些數據有關我們的通話和行動軌跡,互聯網行為,購物偏好,氣候過程以及許多其他方面。如果數據得到正確處理,企業可以從中受益匪淺。
這就是數據科學的全部意義:借助統計方法,認識特定領域并進行相應的工程設計,在數據中找到內在模式,并從中提取知識。但是,盡管這被稱為科學,但這項活動純粹是出于實際利益的考慮——結果的實際適用性是必須的。
在這里,盡管有必要理解和解釋這種現象,但是最重要的是從數據中提取的知識對商業的實際適用性。是的,您不必是數學博士,并理解將薯條放置在靠近啤酒的位置能夠增加利潤,但是您需要向企業證明這樣切實有效。
為什么數據科學吸引了如此多的關注?
主要原因是數據中包含的隱性效率。每個公司都會收集數據。對數據進行分析使公司有機會制造更好的產品,吸引更多的目標客戶、留住客戶、改善業務流程等等。所有這些都可以通過大量閑置數據來了解鮮為人知的流程優化手段及個性化方法。
數據科學的方法使我們能夠沒有偏差或偏見(實踐上主要是偏見)地從可用數據中得出客觀結論,并從發現的模式中獲得新發現。但是您應該了解,數據并不總是有用的,并且擁有的數據量并不重要。
術語定義和數據科學實踐可能因公司而異。對于一家公司,數據科學團隊可能是一位BI分析師,他在Excel中繪制圖表并進行一些業務報告,對于另一家公司,它可能是一個端到端的開發部門,負責與客戶的溝通、數據分析、基礎架構、構建生產就緒系統等。
但是總的來說,很明顯,數據科學家對特定領域有一定的了解,通常具備數學或統計背景,了解如何處理數據、在何處處理數據以及如何看待數據等,而且他們通常沒有任何開發或工程經驗。在執行不同任務時,它們將由數據工程師或機器學習工程師提供幫助(這完全取決于技能)。
二、機器學習
如果它是用Python編寫的,那么它就是機器學習。如果它是用PowerPoint創作的,那么它就是人工智能。
在過去的任何時候,計算機都是通過編程來獲得新的功能--人們為機器創建算法,從而得到預期的結果。對于任何需要自動化的可理解和確定性的任務,這都是一種確定性和可理解的方法。
但是有時,一項任務雖然可以理解,但其中包含一些不確定性的要素,我們必須和這種無法消除的未知因素共存。
為了有效處理此類問題,需要使用其他方法。正如人們所說的,必要性是發明之母(但沒人知道發明之父是什么)。機器學習已成為這種新方法。
在機器學習中,人們僅向計算機提供一些介紹性信息,但是算法的結果不是由人確定的。一個人定義了機器學習的方式,但是機器是從提供給它的數據中自己學習的。機器本身會給出答案。這類似于你和我的學習方式。
機器學習什么?
機器從相關任務過去的經驗(關于數據的)上進行學習,并體現在給定任務的特定指標的性能提升。這個過程也可以稱為適應(在此過程中可能具有更多上下文)——機器根據新的信息調整自己的行為。
這種似乎沒有人類干預的適應,時不時地給人一種機器正在學習的印象。機器學習本質上是一種數據分析方法,它使用迭代數據的算法來自動構建分析模型。
機器學習允許計算機查找隱藏的知識,而不需要明確地編寫查找的程序,這是一個關鍵的想法。實際上,我們將數據提供給算法,并且程序執行的結果將成為處理新數據的邏輯。
一個機器學習項目包含以下三個方面:
首先,機器學習從數據開始,目標是從數據中提取知識或理解。
其次,機器學習涉及一定程度的自動化。與其試圖手動地從數據中收集知識,不如使用計算機將一個過程或算法應用到數據中,以便計算機幫助獲得必要的知識。
第三,機器學習不是一個完全自動化的過程。正如任何從業人員所說的那樣,機器學習要求您做出許多明智的決定,才能使整個過程成功。
三、數據科學與機器學習過程
讓我們將整個數據科學/ 機器學習項目劃分為多個步驟,并仔細研究數據科學和機器學習相交的部分。
根據項目的目標和使用的方法,數據科學過程可能略有不同,但是它通常會包含以下內容。
1、尋找并確定目標
首先了解業務問題非常重要。數據科學家應提出適當的問題,理解并定義要解決的問題的目標。有時這并不總是那么容易,因為企業本身想要很多,但沒有什么具體的目標。
2、收集和存儲數據
然后,他負責從多個來源(例如SAP服務器,API數據庫和在線存儲)收集和抓取數據。有時所有數據都已經收集在方便的數據倉庫中,但是有時您需要付出一些努力才能獲得數據。
大多數情況下,數據工程團隊在這個階段幫助構建可靠的數據管道。
3、數據處理和清理
無論采用哪種機器學習算法,都無法從包含過多噪聲或與實際情況不一致的數據中學習任何東西:無用的輸入輸出。為了使整個項目成功,我們需要清理獲取的數據。
在采集數據后,需要處理數據。此階段包括數據清理和數據轉換。數據清理是最耗時的過程,因為它涉及處理許多復雜的場景。例如:
沖突的數據類型
拼寫錯誤的屬性
缺失值
重復值
4、數據分析
然后,了解數據可以實際完成的工作對于業務和數據科學家而言都非常重要,因此需要對數據進行研究分析。通過探索性數據分析,能夠確定并優化用于下一步的變量選擇。
5、數據建模
現在,流程進行到核心的數據科學處理環節,包括數據建模等。數據科學家選擇一個或多個潛在模型和算法,并選擇模型性能的指標。然后開始將統計和機器學習方法應用于數據,以確定最能滿足業務需求和手頭任務的模型(這可以是簡單的啟發式)。
接著,從可用數據中訓練模型,并對其進行測試以選擇最有效的模型。這是一個迭代的過程,盡管如此,它還是非常有創造性的。
這一步經常被過分強調。很少有數據科學家會重視把模型性能提高1%。通常,將“足夠好”的模型發布到用戶面前更重要。生產中的“足夠好”模型的效果要比Jupyter筆記本中的性能模型提高5-10%好100倍。
6、展示最終結果
最棘手的部分尚未完成,包括可視化和交流。您需要再次與客戶和利益相關者見面,以簡單有效地交付業務成果。
在這個階段,項目可能會結束--也許業務已達到其目標,或者POC尚未揭示該業務的投資回報,因此不需要進一步的工作。
7、生產化
最后,最重要的階段開始了--您需要將數據科學團隊的成果展現在用戶面前-部署和優化模型并將其集成到其他業務流程中。
根據數據類型(點擊流,批處理),目標平臺(AWS,Azure,內部部署等),要求(SLA,水平可伸縮性等)以及最終技術棧等等的差異,這個階段可能會有很大不同。
從本質上講,機器學習活動后續的正常開發周期包括--優化模型,檢查所有邊緣情況,創建模型構件的生命周期,在生產環境中部署前預測試模型等,這是最佳實踐(您可能不得不選擇性能較低的模型)。歸根結底,機器學習就是軟件。
8、監控
在成功部署系統之后,有必要引入監控系統--這里并不是指僅啟用日志記錄--我指的更多的是報表和工具欄,以獲取分析,計算和生成選定指標以及可能相關的信息數據,建立A/B測試系統等。
當然,我僅涉及實際項目中發生的一小部分,但我認為它應該讓您了解構成常規數據科學/機器學習項目的基本活動。
四、結論
像所有其他領域一樣,數據管理也將朝著全棧方向發展。全棧工程師不僅專注于自己的主要領域,并且知道如何制作其他相關部分。
因此,數據科學家會朝著工程學的方向發展–加強他們對基礎架構,代碼設計和工具的了解。數據工程師正在走向數據科學--試圖了解統計,算法和處理數據的方法。最終,他們都會成為機器學習工程師。
如上所述,軟件工程、開發和部署技能在生產級機器學習項目中更為重要。生產中 “足夠好” 的模型優于Jupyter筆記中性能更高的模型。
我認為數據科學家需要作為主要顧問,他們可以為多個項目工作,而開發工作可以由機器學習和數據工程師直接完成。數據科學的未來就是數據工程。








