數據和算法的相愛相殺(一):獲取數據要注意什么?
作者接下來將用幾篇文章能夠給大家由淺入深的談談對數據和算法的認識,希望大家能對數據和算法有基本全面的認識,常用領域和技巧,數據的獲取注意事項,常見的算法的理念和用處。本文是第一篇。
大數據自2000年以后,隨著數據積累和數據處理的能力指數級提高,大數據雨后春筍般從理論走向了實踐。尤其是Google、Facebook、Amazon、oracle等公司,在國際上率先開展了大數據相關的業務,或用于公司內部的使用或對外開放能力。大數據就這么火起來了。
這時大部分局外人尚處于對大數據的敬畏無措之中,只知數據之大,不知算法之艱。隨著人工智能打開了人們新世界的大門,機器學習尤其是神經網絡等算法被大眾所知,算法也終于和數據站到同一個高度,被人關注。
時至今日,沒有人敢輕視數據和算法的重要性,計算機的信息化將這個物體的世界抽象成了信息,大數據將信息抽象成了更小粒度的信息,算法讓我們認識到了數據的復雜性和規律性。算法看到了一般人看不到的東西,算法做出了一般人想不到的預測,算法提出了一般人提不出的警告??梢赃@么說數據是人體的軀干,而算法則是人體的大腦。
數據在百科的解釋是:
數據(data)是事實或觀察的結果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經加工的的原始素材。
數據可以是連續的值,比如聲音、圖像,稱為模擬數據。也可以是離散的,如符號、文字,稱為數字數據。
在計算機系統中,數據以二進制信息單元0、1的形式表示。其實數據并不神秘,獲取也不艱難,相信瀏覽這篇文章的產品經理或多或少的都與數據打過交道。我在這文章余下的部分就重點講一下獲取數據應該注意的事項。
1、如何讓你的用戶或者客戶樂意分享自己的數據
在之前的工業社會中,為了提高單位時間內的產量,我們的產品也來越標準化,進入互聯網時代這種思維也延續下來,但是隨著產能過剩和人差異化的需求,我們需要提供越來越多差異化的服務和產品,這就要求我們要足夠了解在互聯網另一端的人,基于此,千人千面,差異化服務越來越受到到家的重視。而這一切都有一個起點:用戶必須自愿或者不得不分享他們的信息,我認為可以分為以下幾個方面:
- 利益交換——用戶分享了自己的信息能獲得什么,我為什么要給你信息?
- 設計產品信任路徑——你是否在整個用戶歷程中設計了重要的信任構建時刻?
- 分享信息不等于泄露隱私,你的產品能否讓用戶覺得你尊重他的隱私——你的產品圍繞隱私的行動是否與自身的價值觀一致?
2、做到數據規整,這在后面的挖掘中至關重要
你的數據必須是規整的,我的建議是在一個平臺內,或者多個平臺內。對于國標數據優先使用國標數據,如果沒有國標數據則參考行業標準或者根據自己的情況實際設立標準,并在不同的平臺之間共用這一套標準,這是為了確保后面可能進行數據統一化挖掘的過程中統一計量單位。
同時對于常見的計量單位優先使用國內的標準,我國的計量單位多與國際計量單位相同,這是一個優勢。比如可以用 米
就別用英尺。
還有數據形式和規范,或者說數據類型,有些是離散化的數據(參加活動的人數),有些是連續型的數據(比如身高,體重),有些是有限集的,而這些集合基本能被有序排列。統一規范和形式,這對后面算法的設計至關重要。
在開發過程中,往往和實際情況下的數據分布不同。例如也許你想把用戶按照體重劃分為“胖”“適中”“瘦”三檔,但如果系統開發時使用的數據集里最低用戶的體重是80kg,那最后的分析結果里可能會有一個160斤的瘦子。
3、數據缺失了怎么辦
在我們的產品數據庫中數據缺失是很正常的,沒有一個產品數據百分之百健全的,實際過程中,我們有兩種策略,一種是直接全部丟棄參閱嚴重的數據列;另外一種就是想辦法補全這些缺失的數據,去數據列中數據的均值填充進行,實際上我們應該清楚無論哪種一種方式,都會對接下來分析的準確性造成影響。
4、為什么要盡可能的提高數據的規模
數據規模影響可以分三個方面來分析:
- 數據規模會影響算法的計算時間,算法的效率決定了用戶在使用過程中的體驗狀況。
- 數據規模對于算法的精準度有至關重要的影響。
- 數據達到一定的規模后可以掩蓋數據缺失造成的影響。
5、不要讓數據的預測去迎合你
產品或者運營人員經常會基于自己的主觀認識,嘗試去預測當前的用戶情況,交易情況等。但是在大量的數據集合中,人類基本已經喪失了尋找規律,需找特征的能力,所以不要嘗試和數據的預測作對。因為大數據總輸入信息間形成的組合關系會快速增加,這讓人很難像對中等數據集合那樣能夠對其中一部分數據進行抽樣觀察。
更麻煩的是,特征數量增加時人類對數據的直覺會迅速降低。例如在高維空間里,多元高斯分布并不是沿著均值分布,而是像一個扇貝形狀圍繞在均值附近,這和人們的主觀感受完全不同。在低維空間中建立一個分類器并不難,但是當維度增加時,人類就很難直觀的理解了。(舉例來自直接搬磚,向不知名人士表示感謝)
6、回答一下程序員哥哥們的提問(產品止步)
在JSON數據獲取中,ajax后臺獲取數據之后,在前臺返回的時候,有時候顯示的是雜亂無章的信息,并非你想要的,其一的原因是一定要 response.getWriter.print() 后response.getWriter.flush (),然后 response.getwriter.close()。
如有不同意見,歡迎拍磚。將繼續更新,請大家關注。
本文由 @沒空兒 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Unsplash ,基于 CC0 協議
噢