干貨分享:數據挖掘淺談
編輯導讀:數據挖掘是指從大量的、不完全的、有噪聲的、模糊的、隨機的數據中通過算法搜索隱藏于其中信息的過程。本文作者圍繞數據挖掘展開分析,希望對你有幫助。
豆豆和花花開了一家鮮花店。豆豆跟花花說:“情人節快到了,咱店都需要準備哪類情人節花束?每類花束需要準備多少?……” 花花回答道,“根據顧客分類,大致分為自信示愛、甜蜜上心、星河摯愛等共8類。前三類去年賣地特別好,今年需要提供比上年多30%的花束……”。豆豆說:“鮮花的保質期特別短,所以,多購買的鮮花只能從30%降至10%,既可以控制成本,又可以積攢口碑……”
在上面案例中,花花制定采購方案首先進行顧客分類,在數據挖掘領域,可以使用無監督模型(例如k-means),也可以使用分類模型(例如KNN、決策樹、邏輯回歸等)將用戶分群?;ɑA估“今年需要提供比上一年高30%的花束”,在數據挖掘領域,可以使用回歸模型進行預測。
接下來,筆者就跟你淺談一下數據挖掘。
01?機器學習與數據挖掘的區別與聯系
1.1?概念
首先,我們對機器學習和數據挖掘的定義做一下總結:數據挖掘是指從大量的、不完全的、有噪聲的、模糊的、隨機的數據中通過算法搜索隱藏于其中信息的過程。換句話說,數據挖掘試圖從海量數據中找到有用的信息。
機器學習是一類從數據中自動分析獲得規律,并利用規律對未知數據進行預測的算法。也就是說,機器學習就是將現實生活中的問題抽象成數學模型,利用數學方法對這個數學模型進行求解,從而解決現實生活中的問題。
1.2?聯系與區別
1.2.1 聯系數據挖掘受到很多學科領域的影響,其中包括數據庫、機器學習、統計學、領域知識及模式識別等領域。簡而言之,對于數據挖掘,數據庫提供數據存儲技術,機器學習和統計學提供數據分析技術。
統計學經常忽視實際的效用醉心于理論的優美,因此,統計學提供的大部分技術都要在機器學習領域進一步研究,變成機器學習算法后才能進入數據挖掘領域。從這方面來講,統計學主要是通過機器學習來對數據挖掘發揮影響,而機器學習和數據庫則是數據挖掘的兩大支撐。簡言之,機器學習為數據挖掘提供解決實際問題的方法,數據挖掘中算法的成功應用,說明了機器學習對算法的研究具有實際運用價值。
1.2.2 區別
從數據分析來講,大多數數據挖掘技術都是來自于機器學習,但是機器學習研究不把海量數據作為處理對象,因此,數據挖掘需要對算法進行改造,使得算法性能和空間占用達到實用的地步。同時,數據挖掘還有自身獨特的內容——關聯分析。
至于,數據挖掘和模式識別,從概念上區分,數據挖掘重在發現知識,模式識別重在認識事物。
簡言之,機器學習注重相關機器學習算法的理論研究和算法提升,更偏向理論和學術;數據挖掘注重運用算法或者其他某種模式解決實際問題,更偏向實踐和運用。
02?機器學習的分類
機器學習的方法是基于數據產生的“模型”的算法,也稱為“學習算法”。機器學習方法包括有監督學習、無監督學習、半監督學習和強化學習。
2.1?有監督學習
有監督學習指對數據的若干特征與標簽之間的關聯性進行建模的過程。它的主要目標是從有標簽的訓練數據中學習模型,以便對未知或未來的數據做出預測。以用戶是否會復購鮮花為例,可以采用監督學習算法在打過標簽的(正確標識是與否)數據上訓練模型,然后用該模型來預測新用戶是否屬于粘性用戶。
標簽為離散值的監督學習任務稱為「分類任務」,例如上述的用戶是否會復購鮮花示例。常用的分類模型包括KNN、決策樹、邏輯回歸等。
標簽為連續值的監督學習任務稱為「回歸任務」,例如根據歷史數據預測未來的銷售額。常用的回歸模型為線性回歸、非線性回歸和嶺回歸等。
注意:機器學習領域的預測變量通常稱為特征,而響應變量通常稱為目標變量或標簽。
2.2?無監督學習
無監督學習指對不帶任何標簽的數據特征進行建模,通常被看成是一種“讓數據自己介紹自己”的過程。也就是說,用無監督學習,可以在沒有目標變量或獎勵函數的指導下,探索數據結構來提取有意義的信息。這類模型包括「聚類任務」和「降維任務」。其中,聚類算法可以將數據分成不同的組別,而降維算法追求用更簡潔的方式表現數據。
2.3?半監督學習
半監督學習方法介于有監督學習和無監督學習之間,通常在數據不完整時使用。
2.4?強化學習
強化學習不同于監督學習,它將學習看作是試探評價過程,以“試錯”的方式進行學習,并與環境交互已獲得獎懲指導行為,以其作為評價。也就是說,強調如何基于環境而行動,以取得最大化的預期利益。此時,系統靠自身的狀態和動作進行學習,從而改進行動方案以適應環境。
03?數據挖掘建模過程
從數據本身來考慮,數據挖掘建模過程通常需要有理解商業、理解數據、準備數據、建模型、評估模型和部署模型6個步驟。
3.1?理解商業
理解商業算是數據挖掘中最重要的一部分,在這個階段我們需要明確商業目標、評估商業環境、確定挖掘目標以及產生一個項目計劃。簡單地說,就是針對不同的業務場景,需要明白挖掘的目標是什么,需要達到什么樣的效果。用大白話講,就是你到底想干啥。
仍以鮮花店為例,為了提高銷售額,店員可以幫助客戶快速找到他感興趣的花束,同時在保證用戶體驗的情況下,為其附加一個可接受的小飾品,比如花瓶、零食、香水等。
3.2?理解數據
數據是挖掘過程的“原材料”,在數據理解過程中我們需要了解都有哪些數據,這些數據的特征是什么,可以通過對數據進行描述分析得到數據的特點。其中,了解有哪些數據尤為重要,其決定了后期工作進展的順利程度。比如和花店有關的數據:
1)鮮花數據:鮮花名稱、鮮花品類、采購時間、采購數量、采購金額等。
2)經營數據:經營時間、預定時間、預定品類、預定人數等。
3)其他數據:是否為節假日、用戶口碑、競爭對手動向、天氣情況等。
3.3?準備數據
在數據準備階段我們需要對數據作出清洗、重建、合并等操作。選出要進行分析的數據,并對不符合模型輸入要求的數據進行規范化操作。主要是為建模準備數據,可以從數據預處理、特征提取、特征選擇等幾方面出發,整理如下:1)缺失值:由于個人隱私或設備故障導致某些觀測值在某些緯度上的漏缺,通常稱為缺失值。缺失值存在可能會導致模型結果的錯誤,所以針對缺失值可以考慮刪除、眾數或均值填充等解決。
2)異常值:由于遠離正常樣本的觀測點,它們的存在同樣會對模型的準確型造成影響??梢酝ㄟ^象限圖或3sigma(正態分布)進行判斷,如果是,可以考慮刪除或單獨處理。
3)量綱不一致:模型容易受到不同量綱的影響,因此需要通過標準化方法(通常采用歸一化、Normalization之類的方法)將數據進行轉換。
4)維度災難:當數據集中包含上百乃至上千萬的變量時,往往會提高模型的復雜度,從而影響模型的運行效率,所以需要采用方差分析、相關分析、主成分分析等手段實現降維。
3.4?建模型
一般情況下,預處理將占整個數據挖掘流程80%左右的時間。在保證數據“干凈”的前提下,需要選出合適的模型。以下是常用的機器算法。1)分類模型:KNN、決策樹、邏輯回歸等。
2)回歸模型:線性回歸、嶺回歸、支持向量回歸等。
3)無監督模型:k-means等。
數據挖掘中大部分模型都不是專為解決某個問題而特制的,模型之間相互不排斥。不能說一個問題只能采用某個模型,其他的都不能用。通常來說,針對某個數據分析項目,并不存在所謂的最好的模型,在最終決定選擇哪種模型之前,各種模型都嘗試一下,然后再選取一個較好的。各種模型在不同的環境中,優劣會有所不同。
3.5?評估模型
評估階段主要是對建模結果進行評估,目的是選出最佳的模型,讓這個模型能夠更好地反映數據的真實性。并不是每一次建模都能符合我們的目標,對效果較差的結果分析原因,偶爾也會返回前面的步驟對挖掘過程重新定義。比如,對于決策樹或者邏輯回歸,即使在訓練集中表現良好,但在測試集中結果較差,說明該模型存在過擬合。
3.6?模型部署
建立的模型需要解決實際的問題,它還包括了監督、產生報表和重新評估模型等過程。很多時候建模一般使用spss、python、r等,在建模的過程中只考慮模型的可用性,在生產環境中通常會利用Java或C++等語言將模型改寫,從而提高運行性能。
祝大家情人節快樂!
作者:貓耳朵,專注于數據分析;“數據人創作者聯盟”成員。
本文由@一個數據人的自留地 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Pexels,基于CC0協議。
作者:阿坤,“數據人創作者聯盟”成員。
本文由@一個數據人的自留地 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
寫的挺好
剛進來就看到這篇文章哈哈哈,太好了,最近正好想學點這種,哎
這篇文章寫的非常好,剛好有用,數據分析確實很重要
進行下一步動作時,做下數據分析真的是太重要了