精品无人区无码乱码毛片国产_性做久久久久久免费观看_天堂中文在线资源_7777久久亚洲中文字幕

首頁 慕課課程正文

數(shù)據(jù)科學家成長指南(上)

少年,你渴望力量么?

這才是真正的力量,年輕人!

這是Swami Chandrasekaran所繪制的一張地圖。名字叫MetroMap to Data Scientist(數(shù)據(jù)科學家之路),別稱怎么死都不知道的。

數(shù)據(jù)科學家是近年火爆興起的職位,它是數(shù)據(jù)分析師的后續(xù)進階,融合了統(tǒng)計、業(yè)務、編程、機器學習、數(shù)據(jù)工程的復合型職位。

該地圖一共十條路線,分別是基礎原理、統(tǒng)計學、編程能力、機器學習、文本挖掘/自然語言處理、數(shù)據(jù)可視化、大數(shù)據(jù)、數(shù)據(jù)獲取、數(shù)據(jù)清理、常用工具。條條路線都不是人走的。因為網(wǎng)上只有英文版,我將其翻譯成中文,并對內(nèi)容作一些解釋和補充。

該指南主要涉及硬技能,數(shù)據(jù)科學家的另外一個核心業(yè)務能力,這里沒有涉及,它并不代表不重要。

Fundamentals原理

算是多學科的交叉基礎,屬于數(shù)據(jù)科學家的必備素質(zhì)。

Matrices & Linear Algebra

矩陣和線性代數(shù)

矩陣(Matrix)是一個按照長方陣列排列的復數(shù)或?qū)崝?shù)集合。涉及到的機器學習應用有SVD、PCA、最小二乘法、共軛梯度法等。

線性代數(shù)是研究向量、向量空間、線性變換等內(nèi)容的數(shù)學分支。向量是線性代數(shù)最基本的內(nèi)容。中學時,數(shù)學書告訴我們向量是空間(通常是二維的坐標系)中的一個箭頭,它有方向和數(shù)值。在數(shù)據(jù)科學家眼中,向量是有序的數(shù)字列表。線性代數(shù)是圍繞向量加法和乘法展開的。

矩陣和線性代數(shù)有什么關系呢?當向量進行線性變換時,這種變換可以想象成幾何意義上的線性擠壓和拉扯,而矩陣則是描述這種變換的信息,由變換后的基向量決定。

矩陣和線性代數(shù)是一體的,矩陣是描述線性代數(shù)的參數(shù)。它們構成了機器學習的龐大基石。

Hash Functions,Binary Tree,O(n)

哈希函數(shù),二叉樹,時間復雜度

哈希函數(shù)也叫散列函數(shù),它能將任意的數(shù)據(jù)作為輸入,然后輸出固定長度的數(shù)據(jù),這個數(shù)據(jù) 叫哈希值也叫散列值,用h表示,此時h就輸入數(shù)據(jù)的指紋。

哈希函數(shù)有一個基本特性,如果兩個哈希值不相同,那么它的輸入也肯定不相同。反過來,如果兩個哈希值是相同的,那么輸入值可能相同,也可能不相同,故無法通過哈希值來判斷輸入。

哈希函數(shù)常用在數(shù)據(jù)結構、密碼學中。

二叉樹是計算機科學的一個概念,它是一種樹形結構。在這個結構中,每個節(jié)點最多有兩個子樹(左子樹和右子樹),子樹次序不能顛倒。二叉樹又有多種形態(tài)。

二叉樹是樹這類數(shù)據(jù)結構的第一種樹,后續(xù)還有紅黑樹等,很多語言的set,map都是用二叉樹寫的。

時間復雜度是編程中的一個概念,它描述了執(zhí)行算法需要的時間。不同算法有不同的時間復雜度,例如快排、冒泡等。

簡便的計算方法是看有幾個for循環(huán),一個是O(n),兩個是O(n^2),三個是O(n^3)。當復雜度是n^3+n^2時,則取最大的量級n^3即可。

與之相對應的還有空間復雜度,它代表的是算法占用的內(nèi)存空間。算法通常要在時間和內(nèi)存中取得一個平衡,既內(nèi)存換時間,或者時間換內(nèi)存。

Relational Algebra

關系代數(shù)

它是一種抽象的查詢語言?;镜拇鷶?shù)運算有選擇、投影、集合并、集合差、笛卡爾積和更名。

關系型數(shù)據(jù)庫就是以關系代數(shù)為基礎。在SQL語言中都能找到關系代數(shù)相應的計算。

Inner、Outer、Cross、Theta Join

內(nèi)連接、外連接、交叉連接、θ連接

這是關系模型中的概念,也是數(shù)據(jù)庫的查詢基礎。

內(nèi)連接,只連接匹配的行,又叫等值連接。

外連接,連接左右兩表所有行,不論它們是否匹配。

交叉連接是對兩個數(shù)據(jù)集所有行進行笛卡爾積運算,比如一幅撲克牌,其中有A集,是13個牌的點數(shù)集合,集合B則是4個花色的集合,集合A和集合B的交叉鏈接就是4*13共52個。

θ連接使用where子句引入連接條件,θ連接可以視作交叉連接的一個特殊情況。where 可以是等值,也可以是非等值如大于小于。

不同數(shù)據(jù)庫的join方式會有差異。

CAP Theorem

CAP定理

指的是在一個分布式系統(tǒng)中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區(qū)容錯性),三者不可得兼。

一致性(C):在分布式系統(tǒng)中的所有數(shù)據(jù)備份,在同一時刻是否同樣的值。(等同于所有節(jié)點訪問同一份最新的數(shù)據(jù)副本)

可用性(A):在集群中一部分節(jié)點故障后,集群整體是否還能響應客戶端的讀寫請求。(對數(shù)據(jù)更新具備高可用性)

分區(qū)容錯性(P):以實際效果而言,分區(qū)相當于對通信的時限要求。系統(tǒng)如果不能在時限內(nèi)達成數(shù)據(jù)一致性,就意味著發(fā)生了分區(qū)的情況,必須就當前操作在C和A之間做出選擇。

數(shù)據(jù)系統(tǒng)設計必須在三個性能方便做出取舍,不同的數(shù)據(jù)庫,CAP傾向性不同。

tabular data

列表數(shù)據(jù)

即二維的表格數(shù)據(jù),關系型數(shù)據(jù)庫的基礎。

DataFrames & Series

Pandas數(shù)據(jù)結構

Series是一個一維數(shù)據(jù)對象,由一組NumPy的array和一組與之相關的索引組成。Python字典和數(shù)組都能轉換成數(shù)組。Series以0為開始,步長為1作為索引。

DataFrames是一個表格型的數(shù)據(jù),是Series的多維表現(xiàn)。DataFrames即有行索引也有列索引,可以看作Series組成的字典。

Sharding

分片

分片不是一種特定的功能或者工具,而是技術細節(jié)上的抽象處理,是水平拓展的解決方法。一般數(shù)據(jù)庫遇到性能瓶頸,采用的是Scale Up,即向上增加性能的方法,但單個機器總有上限,于是水平拓展應運而生。

分片是從分區(qū)(Partition)的思想而來,分區(qū)通常針對表和索引,而分片可以跨域數(shù)據(jù)庫和物理假期。比如我們將中國劃分南北方,南方用戶放在一個服務器上,北方用戶放在另一個服務器上。

實際形式上,每一個分片都包含數(shù)據(jù)庫的一部分,可以是多個表的內(nèi)容也可以是多個實例的內(nèi)容。當需要查詢時,則去需要查詢內(nèi)容所在的分片服務器上查詢。它是集群,但不同于Hadoop的MR。

如果能夠保證數(shù)據(jù)量很難超過現(xiàn)有數(shù)據(jù)庫服務器的物理承載量,那么只需利用MySQL5.1提供的分區(qū)(Partition)功能來改善數(shù)據(jù)庫性能即可;否則,還是考慮應用Sharding理念。另外一個流傳甚廣的觀點是:我們的數(shù)據(jù)也許沒有那么大,Hadoop不是必需的,用sharding即可。

OLAP

聯(lián)機分析處理(Online Analytical Processing)

它是數(shù)據(jù)倉庫系統(tǒng)主要的應用,主要用于復雜的分析操作。

針對數(shù)據(jù)分析人員,數(shù)據(jù)是多維數(shù)據(jù)。查詢均是涉及到多表的復雜關聯(lián)查詢,為了支持數(shù)據(jù)業(yè)務系統(tǒng)的搭建,OLAP可以想象成一個多維度的立方體,以維度(Dimension)和度量(Measure)為基本概念。我們用到的多維分析就是OLAP的具象化應用。

OLAP更偏向于傳統(tǒng)企業(yè),互聯(lián)網(wǎng)企業(yè)會靈活變動一些。另外還有一個OLTP的概念。

Multidimensional Data Model

多維數(shù)據(jù)模型。

它是OLAP處理生成后的數(shù)據(jù)立方體。它提供了最直觀觀察數(shù)據(jù)的方法。

涉及鉆取,上卷,切片,切塊,旋轉等操作,就是把上面的立方體變變變啦。

ETL

ETL是抽取(extract)、轉換(transform)、加載(load)的過程。常用在數(shù)據(jù)倉庫。

整個流程是從數(shù)據(jù)源抽取數(shù)據(jù),結果數(shù)據(jù)清洗和轉換,最終將數(shù)據(jù)以特定模型加載到數(shù)據(jù)倉庫中去。

ETL是一個古老的概念,在以前SQL數(shù)據(jù)倉庫時代和OLAP伴隨而生,在現(xiàn)在日新月異的技術生態(tài)圈,會逐步演進到Hadoop相關的技術了。

Reporting vs BI vs Analytics

報表與商業(yè)智能與分析

這是BI的三個組成部分。Reporting是數(shù)據(jù)報表。利用表格和圖表呈現(xiàn)數(shù)據(jù)。報表通常是動態(tài)多樣的。數(shù)個報表的集合統(tǒng)稱為Dashboard。

BI是商業(yè)智能,是對企業(yè)的數(shù)據(jù)進行有效整合,通過數(shù)據(jù)報表快速作出決策。

Analytics是數(shù)據(jù)分析,基于數(shù)據(jù)報表作出分析。包括趨勢的波動,維度的對比等。

JSON & XML

JSON是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,也易于機器解析和生成。

JSON的語法規(guī)則是:

{ }保存對象;

[ ]保存數(shù)組;

數(shù)據(jù)由逗號分隔;

數(shù)據(jù)在鍵值對中;

下面范例就是一組JSON值

XML是可拓展標記語言,被設計用來傳輸和存儲數(shù)據(jù),與之對應的HTML則是顯示數(shù)據(jù)。XML和HTML服務于不同目的,XML是不作為的。

上面的范例,純粹就是用來傳輸?shù)囊欢涡畔ⅲ瑳]有任何意義。

NoSQL

泛指非關系型的數(shù)據(jù)庫,意為Not Only SQL。

NoSQL是隨著大數(shù)據(jù)時代發(fā)展起來的,傳統(tǒng)的關系數(shù)據(jù)庫在高并發(fā)大規(guī)模多數(shù)據(jù)類型的環(huán)境下力不從心,而NoSQL就是為了解決這些問題而產(chǎn)生的。

NoSQL主要分為四大類:

鍵值KeyValue數(shù)據(jù)庫

這類數(shù)據(jù)庫會使用哈希表,哈希表中有一個特定的鍵指向一個特定的值,KeyValue的特點是去中心化,不涉及業(yè)務關系。代表Redis。

列數(shù)據(jù)庫

這類數(shù)據(jù)庫用于分布式海量存儲,和KeyValue的區(qū)別在于這里的Key指向的是列。橫向拓展性好,適合大數(shù)據(jù)量高IO。代表HBase,Cassandra

文檔型數(shù)據(jù)庫

屬于KeyValue數(shù)據(jù)庫的升級版,允許嵌套鍵值。文檔是處理信息的基本單位,一個文檔等于一個關系數(shù)據(jù)庫的一條記錄。

因為文檔的自由性,文檔型數(shù)據(jù)庫適合復雜、松散、無結構或半結構化的數(shù)據(jù)模型,和JSON類似,叫做BSON(MongoDB的存儲格式)。代表MongoDB

圖形數(shù)據(jù)庫

基于圖論算法的數(shù)據(jù)庫,將數(shù)據(jù)集以圖形元素(點、線、面)建立起來。這種數(shù)據(jù)庫常應用在社交網(wǎng)絡關系鏈,N度關系等。代表Neo4j

Regex

正則表達式(Regular Expression)

正則表通常被用來檢索、替換那些符合某個模式(規(guī)則)的字符串。通過特定字符的組合,對字符串進行邏輯過濾。例如注冊賬號時檢查對方郵件格式對不對啊,手機號格式對不對啊。

學起來靠記,記了也會忘,每次用得查,查了還得檢驗。網(wǎng)上記憶口訣一堆圖表,相關網(wǎng)站也不少,仁者見仁了。

Vendor Landscape

不懂,供應商風景?

Env Setup

環(huán)境安裝

想了半天,Env應該是環(huán)境安裝的意思,IDE啊,GUI啊等等全部安裝上去,再調(diào)各種路徑啥的。針對數(shù)據(jù)科學家,Anaconda + Rstudio用的比較多。

Statistics 統(tǒng)計

統(tǒng)計是數(shù)據(jù)科學家的核心能力之一,機器學習就是基于統(tǒng)計學原理的,我不算精通這一塊,許多內(nèi)容都是網(wǎng)絡教科書式的語言。都掌握后再重寫一遍。

Pick a Dataset(UCI Repo)

找數(shù)據(jù)(UCI數(shù)據(jù)集)

UCI數(shù)據(jù)庫是加州大學歐文分校(University of CaliforniaIrvine)提出的用于機器學習的數(shù)據(jù)庫,這個數(shù)據(jù)庫目前共有335個數(shù)據(jù)集,其數(shù)目還在不斷增加,可以拿來玩機器學習。網(wǎng)上搜的到。另外的數(shù)據(jù)來源是Kaggle競賽等。

最經(jīng)典的數(shù)據(jù)莫過于Iris了。

Descriptive Statistics(mean, median, range, SD, Var)

描述性統(tǒng)計(均值,中位數(shù),極差,標準差,方差)

均值也叫平均數(shù),是統(tǒng)計學中的概念。小學學習的算數(shù)平均數(shù)是其中的一種均值,除此以外還有眾數(shù)和中位數(shù)。

中位數(shù)可以避免極端值,在數(shù)據(jù)呈現(xiàn)偏態(tài)的情況下會使用。

極差就是最大值減最小值。

標準差,也叫做均方差?,F(xiàn)實意義是表述各數(shù)據(jù)偏離真實值的情況,反映的是一組數(shù)據(jù)的離散程度。平均數(shù)相同的兩組數(shù)據(jù),如[1,9]和[4,6],平均數(shù)相同,標準差不一樣,前者的離散程度更大。

方差,是標準差的平方。方差和標準差的量綱是一致的。在實際使用過程中,標準差需要比方差多一步開平方的運算,但它在描述現(xiàn)實意義上更貼切,各有優(yōu)劣。

Exploratory Data Analysis

探索性數(shù)據(jù)分析

獲得一組數(shù)據(jù)集時,通常分析師需要掌握數(shù)據(jù)的大體情況,此時就要用到探索性數(shù)據(jù)分析。

主要是兩類:

圖形法,通過直方圖、箱線圖、莖葉圖、散點圖快速匯總描述數(shù)據(jù)。

數(shù)值法:觀察數(shù)據(jù)的分布形態(tài),包括中位數(shù)、極值、均值等,觀察多變量之間的關系。

探索性數(shù)據(jù)分析不會涉及到復雜運算,而是通過簡單的方式對數(shù)據(jù)有一個大概的了解,然后才去深入挖掘數(shù)據(jù)價值,在Python和R中,都有相關的summary函數(shù)。

Histograms

直方圖

它又稱質(zhì)量分布圖,是一種表示數(shù)據(jù)分布的統(tǒng)計報告圖。

近似圖表中的條形圖,不過直方圖的條形是連續(xù)排列,沒有間隔、因為分組數(shù)據(jù)具有連續(xù)性,不能放開。

正常的直方圖是中間高、兩邊低、左右近似對稱。而異常型的直方圖種類過多,不同的異常代表不同的可能情況。

Percentiles & Outliers

百分位數(shù)和極值

它們是描述性統(tǒng)計的元素。

百分位數(shù)指將一組數(shù)據(jù)從小到大排序,并計算相遇的累積百分值,某一百分位所對應數(shù)據(jù)的值就稱為這一百分位的百分位數(shù)。比如1~100的數(shù)組中,25代表25分位,60代表60分位。

我們常將百分位數(shù)均勻四等分:第25百分位數(shù),叫做第一四分位數(shù);第50百分位數(shù),稱第二四分位數(shù),也叫中位數(shù);第75百分位數(shù),叫做第三四分位數(shù)。通過四分位數(shù)能夠簡單快速的衡量一組數(shù)據(jù)的分布。它們構成了箱線圖的指標。

極值是最大值和最小值,也是第一百分位數(shù)和第一百百分位數(shù)。

百分位數(shù)和極值可以用來描繪箱線圖。

Probability Theory

概率論,統(tǒng)計學的核心之一,主要研究隨機現(xiàn)象發(fā)生的可能性。

Bayes Theorem

貝葉斯定理

它關于隨機事件A和B的條件概率的定理。

現(xiàn)實世界有很多通過某些信息推斷出其他信息的推理和決策,比如看到天暗了、蜻蜓低飛了,那么就表示有可能下雨。這組關系被稱為條件概率:用P(A|B)表示在B發(fā)生的情況下A發(fā)生的可能性。

貝葉斯公式:P(B|A) = P(A|B)*P(B) / P(A)

現(xiàn)實生活中最經(jīng)典的例子就是疾病檢測,如果某種疾病的發(fā)病率為千分之一。現(xiàn)在有一種試紙,它在患者得病的情況下,有99%的準確判斷患者得病,在患者沒有得病的情況下,有5%的可能誤判患者得病?,F(xiàn)在試紙說一個患者得了病,那么患者真的得病的概率是多少?

從我們的直覺看,是不是患者得病的概率很大,有80%?90%?實際上,患者得病的概率只有1.9%。關鍵在哪里?一個是疾病的發(fā)病率過低,一個是5%的誤判率太高,導致大多數(shù)沒有得病的人被誤判。這就是貝葉斯定理的作用,用數(shù)學,而不是直覺做判斷。

最經(jīng)典的應用莫過于垃圾郵件的過濾。

Random Variables

隨機變量

表示隨機試驗各種結果的實際值。比如天氣下雨的降水量,比如某一時間段商城的客流量。

隨機變量是規(guī)律的反應,扔一枚硬幣,既有可能正面、也有可能反面,兩者的概率都是50%。扔骰子,結果是1~6之間的任何一個,概率也是六分之一。雖然做一次試驗,結果肯定是不確定性的,但是概率是一定的。隨機變量是概率的基石。

Cumul Dist Fn(CDF)

累計分布函數(shù)(Cumulative Distribution Function)

它是概率密度函數(shù)的積分,能夠完整描述一個實數(shù)隨機變量X的概率分布。直觀看,累積分布函數(shù)是概率密度函數(shù)曲線下的面積。

上圖陰影部分就是一個標準的累積分布函數(shù)F(x),給定任意值x,計算小于x的概率為多大。實際工作中不會涉及CDF的計算,都是計算機負責的。記得在我大學考試,也是專門查表的。

現(xiàn)實生活中,我們描述的很多概率都是累積分布函數(shù),我們說考試90分以上的概率有95%,實際是90分~100分所有的概率求和為95%。

Continuos Distributions(Normal, Poisson, Gaussian)

連續(xù)分布(正態(tài)、泊松、高斯)

分布有兩種,離散分布和連續(xù)分布。連續(xù)分布是隨機變量在區(qū)間內(nèi)能夠取任意數(shù)值。

正態(tài)分布是統(tǒng)計學中最重要的分布之一,它的形狀呈鐘型,兩頭低,中間高,左右對稱。

正態(tài)分布有兩個參數(shù),期望μ和標準差σ:μ反應了正態(tài)分布的集中趨勢位置,σ反應了離散程度,σ越大,曲線越扁平,σ越小,曲線越窄高。

自然屆中大量的現(xiàn)象都按正態(tài)形式分布,標準正態(tài)分布則是正態(tài)分布的一種,平均數(shù)為0,標準差為1。應用中,都會將正態(tài)分布先轉換成標準正態(tài)分布進行計算。很多統(tǒng)計學方法,都會要求數(shù)據(jù)符合正態(tài)分布才能計算。

泊松分布是離散概率分布。適合描述某個隨機事件在單位時間/距離/面積等出現(xiàn)的次數(shù)。當n出現(xiàn)的次數(shù)足夠多時,泊松分布可以看作正態(tài)分布。

高斯分布就是正態(tài)分布。

Skewness

偏度

它是數(shù)據(jù)分布傾斜方向和程度的度量,當數(shù)據(jù)非對稱時,需要用到偏度。

正態(tài)分布的偏度為0,當偏度為負時,數(shù)據(jù)分布往左偏離,叫做負偏離,也稱左偏態(tài)。反之叫右偏態(tài)。

ANOVA

方差分析

用于多個變量的顯著性檢驗?;舅枷胧牵和ㄟ^分析研究不同來源的變異對總變異的貢獻大小,從而確定可控因素對研究結果影響力的大小。

方差分析屬于回歸分析的特例。方差分析用于檢驗所有變量的顯著性,而回歸分析通常針對單個變量的。

Prob Den Fn(PDF)

概率密度函數(shù)

PDF是用來描述連續(xù)型隨機變量的輸出值。概率密度函數(shù)應該和分布函數(shù)一起看:

藍色曲線是概率密度函數(shù),陰影部分是累積分布函數(shù)。我們用概率密度函數(shù)在某一區(qū)間上的積分來刻畫隨機變量落在這個區(qū)間中的概率。概率等于區(qū)間乘概率密度,累積分布等于所有概率的累加。

概率密度函數(shù):f(x) = P(X=x)

累積分布函數(shù):F(x) = P(X<=x)

概率密度函數(shù)是累積分布函數(shù)的導數(shù),現(xiàn)有分布函數(shù),才有密度函數(shù)。累積分布函數(shù)即可以離散也可以連續(xù),而密度函數(shù)是用在連續(xù)分布中的。

Central Limit THeorem

中心極限定理

它是概率論中最重要的一類定理。

自然屆中很多隨機變量都服從正態(tài)分布,中心極限定理就是理解和解釋這些隨機變量的。我們有一個總體樣本,從中取樣本量為n的樣本,這個樣本有一個均值,當我們重復取了m次時,對應有m個均值,如果我們把數(shù)據(jù)分布畫出來,得到的結果近似正態(tài)分布。

這就是中心極限定理,它神奇的地方就在于不管總體是什么分布。我們很多推導都是基于中心極限定理的。

Monte Carlo Method

蒙特卡羅方法

它是使用隨機數(shù)來解決計算問題的方法。

蒙特卡羅是一個大賭場,以它命名,含義近似于隨機。我們有時候會因為各種限制而無法使用確定性的方法,此時我們只能隨機模擬,用通過概率實驗所求的概率來估計我們感興趣的一個量。最知名的例子有布豐投針試驗。

18世紀,布豐提出以下問題:設我們有一個以平行且等距木紋鋪成的地板,木紋間距為a,現(xiàn)在隨意拋一支長度l比木紋之間距離a小的針,求針和其中一條木紋相交的概率。布豐計算出來了概率為p = 2l/πa。

為了計算圓周率,人們紛紛投針,以實際的試驗結果來計算。

下圖則是計算機模擬的結果

這就是蒙特卡羅方法的實際應用。它的理論依據(jù)是大數(shù)定理和中心極限定理。

Hypothesis Testing

假設檢驗

它是根據(jù)一定的假設條件由樣本推斷總體的方法。

首先根據(jù)實際問題作出一個假設,記作H0,相反的假設稱為備擇假設。它的核心思想是小概率反證法,如果這個假設發(fā)生的概率太小以至于不可能發(fā)生,結果它發(fā)生了,那么我們認為假設是不成立的。

假設檢驗是需要容忍的,因為樣本會存在波動,這個波動范圍不會太嚴格,在這個范圍內(nèi)出現(xiàn)的事件我們都能接受。但是我們都這么容忍了,還是出現(xiàn)了違背原假設的小概率事件,那么說明原假設有問題。不能容忍的范圍即拒絕域,在拒絕域發(fā)生的概率我們都認為它是小概率事件。

假設檢驗容易犯兩類錯誤,第一類錯誤是真實情況為h0成立,但判斷h0不成立,犯了“以真為假”的錯誤。第二類錯誤是h0實際不成立,但判斷它成立,犯了“以假為真”的錯誤。

假設檢驗有U檢驗、T檢驗、F檢驗等方法。

p-Value

P值

它是進行假設檢驗判定的一個參數(shù)。當原假設為真時樣本觀察結果(或更極端結果)出現(xiàn)的概率。P值很小,說明原假設發(fā)生的概率很小,但它確實發(fā)生了,那么我們就有理由拒絕原假設。

至于P值的選擇根據(jù)具體情況,一般是1%,5%幾個檔次。

然而,P值在統(tǒng)計學上爭議很大,P值是否是接受原假設的標準,都是統(tǒng)計學各種流派混合后的觀點。P值從來沒有被證明可以用來接收某個假設(所以我上文的說明并不嚴謹),它只是僅供參考?,F(xiàn)在統(tǒng)計學家們也開始倡導:應該給出置信區(qū)間和統(tǒng)計功效,實際的行動判讀還是留給人吧。

Chi2 Test

卡方檢驗

Chi讀作卡。通常用作獨立性檢驗和擬合優(yōu)度檢驗。

卡方檢驗基于卡方分布。檢驗的假設是觀察頻數(shù)與期望頻數(shù)沒有差別。

獨立性檢驗:卡方分布的一個重要應用是基于樣本數(shù)據(jù)判斷兩個變量的獨立性。獨立性檢驗使用列聯(lián)表格式,因此也被稱為列聯(lián)表檢驗。原假設中,列變量與行變量獨立,通過每個單元格的期望頻數(shù)檢驗統(tǒng)計量。

擬合優(yōu)度檢驗:它依據(jù)總體分布狀況,計算出分類變量中各類別的期望頻數(shù),與分布的觀察頻數(shù)進行對比,判斷期望頻數(shù)與觀察頻數(shù)是否有顯著差異。目的是判斷假設的概率分布模型是否能用作研究總體的模型。

獨立性檢驗是擬合優(yōu)度檢驗的推廣。

Estimation

估計

統(tǒng)計學里面估計分為參數(shù)估計和非參數(shù)估計。

參數(shù)估計是用樣本指標估計總體指標,這個指標可以是期望、方差、相關系數(shù)等,指標的正式名稱就是參數(shù)。當估計的是這些參數(shù)的值時,叫做點估計。當估計的是一個區(qū)間,即總體指標在某范圍內(nèi)的可能時,叫做區(qū)間估計,簡單認為是人們常說的有多少把握保證某值在某個范圍內(nèi)。

參數(shù)估計需要先明確對樣本的分布形態(tài)與模型的具體形式做假設。常見的估計方法有極大似然估計法、最小二乘法、貝葉斯估計法等。

非參數(shù)估計則是不做假設,直接利用樣本數(shù)據(jù)去做逼近,找出相應的模型。

Confid Int(CI)

置信區(qū)間

它是參數(shù)檢驗中對某個樣本的總體參數(shù)的區(qū)間估計。它描述的是這個參數(shù)有一定概率落在測量結果的范圍程度。這個概率叫做置信水平。

以網(wǎng)上例子來說,如果在一次大選中某人的支持率為55%,而置信水平0.95以上的置信區(qū)間是(50%,60%),那么他的真實支持率有95%的概率落在和50~60的支持率之間。我們也可以很容易的推得,當置信區(qū)間越大,置信水平也一定越大,落在40~70%支持率的可能性就有99.99%了。當然,越大的置信區(qū)間,它在現(xiàn)實的決策價值也越低。

置信區(qū)間經(jīng)常見于抽樣調(diào)研,AB測試等。

MLE

極大似然估計

它是建立在極大似然原理的基礎上。

如果試驗如有若干個可能的結果A,B,C…。若在僅僅作一次試驗中,結果A出現(xiàn),則一般認為試驗條件對A出現(xiàn)有利,也即A出現(xiàn)的概率很大。

此時我們需要找出某個參數(shù),參數(shù)能使這個樣本出現(xiàn)的概率最大,我們當然不會再去選擇其他小概率的樣本,所以干脆就把這個參數(shù)作為估計的真實值。

Kernel Density Estimate

核密度估計

它是概率論中估計未知的密度函數(shù),屬于非參數(shù)檢驗。

一般的概率問題,我們都會假定數(shù)據(jù)分布滿足狀態(tài),是基于假定的判別。這種叫參數(shù)檢驗。如果如果數(shù)據(jù)與假定存在很大的差異,那么這些方法就不好用,于是便有了非參數(shù)檢驗。核密度估計就是非參數(shù)檢驗,它不需要假定數(shù)據(jù)滿足那種分布。

Regression

回歸

回歸,指研究一組隨機變量(Y1 ,Y2 ,…,Yi)和另一組(X1,X2,…,Xk)變量之間關系的統(tǒng)計分析方法,又稱多重回歸分析。通常Y1,Y2,…,Yi是因變量,X1、X2,…,Xk是自變量。

回歸分析常用來探討變量之間的關系,在有限情況下,也能推斷相關性和因果性。而在機器學習領域中,它被用來預測,也能用來篩選特征。

回歸包括線性回歸、非線性回歸、邏輯回歸等。上圖就是線性回歸。

Convariance

協(xié)方差

用于衡量兩個變量的總體誤差,方差是協(xié)方差的一種特殊情況,即兩個變量相同。

協(xié)方差用數(shù)據(jù)期望值E計算:cov(x,y) = E[XY]-E[X][Y]。

如果XY互相獨立,則cov(x,y)=0.此時E[XY] = E[X][Y]。

Correlation

相關性

即變量之間的關聯(lián)性,相關性只涉及數(shù)學層面,即一個變量變化,另外一個變量會不會變化,但是兩個變量的因果性不做研究。

相關關系是一種非確定性的關系,即無法通過一個變量精確地確定另外一個變量,比如我們都認為,一個人身高越高體重越重,但是不能真的通過身高去確定人的體重。

Pearson Coeff

皮爾遜相關系數(shù)

它是度量兩個變量線性相關的系數(shù),用r表示,其值介于-1與1之間。1表示完全正相關,0表示完全無關,-1表示完全負相關。

Causation

因果性

和相關性是一堆好基友。相關性代表數(shù)學上的關系,但并不代表具有因果性。

夏天,吃冷飲的人數(shù)和淹死的人數(shù)都呈現(xiàn)正相關。難道是吃冷飲導致了淹死?不是的,是因為天熱,天熱吃冷飲的人多了,游泳的人也多了。

《大數(shù)據(jù)時代》曾經(jīng)強調(diào),我們應該重視相關性而不是因果性,這是存疑的,因為對數(shù)據(jù)科學家來說,對業(yè)務因果性的了解往往勝于相關性,比如你預測一個人是否會得癌癥,你不能拿是否做過放療作為特征,因為放療已經(jīng)是癌癥的果,必然是非常強相關,但是對預測沒有任何幫助,只是測試數(shù)據(jù)上好看而已。

Least2 fit

最小二乘法

它是線性回歸的一種用于機器學習中的優(yōu)化技術。

最小二乘的基本思想是:最優(yōu)擬合直線應該是使各點到回歸直線的距離和最小的直線,即平方和最小。它是基于歐式距離的。

Eculidean Distance

歐氏距離

指在m維空間中兩個點之間的真實距離。小學時求的坐標軸軸上兩個點的直線距離就是二維空間的歐式距離。很多算法都是基于歐式距離求解的。

二維:

Programming 編程

數(shù)據(jù)科學家是需要一定的編程能力,雖然不需要程序員那么精通,注重的是解決的能力,而不是工程化的能力。作者從內(nèi)容看更推崇R,我個人是推崇Python的。

Python Basics

Python基礎知識。

人生苦短,我用Python。

Python的基礎內(nèi)容比R豐富的多,近幾年,Python有作為第一數(shù)據(jù)科學語言的趨勢。基礎內(nèi)容就不多復述了。

Working in Excel

Excel干活

掌握常用函數(shù),懂得數(shù)據(jù)分析庫,會Power系列加分。VBA這種就不用學了。

R Setup, RStudio R

安裝R和RStudio

R是一門統(tǒng)計學語言。下列的內(nèi)容,都是R語言相關。

R Basics

R的基礎,不多作陳述了。

Varibles

變量

變量是計算機語言中的抽象概念,可以理解成我們計算的結果或者值,不同計算語言的變量性質(zhì)不一樣。主要理解R和Python的變量就行。大數(shù)據(jù)那塊可能還會涉及到Java和Scala。

R 用 <- 給變量賦值,=也能用,但不建議。

Vectors

向量

向量是一維數(shù)組,可以存儲數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。R里面使用函數(shù)c( )創(chuàng)建向量。

v <- c(1,2,3,4)

向量中的數(shù)據(jù)必須擁有相同的數(shù)據(jù)類型,無法混雜。

Matrices

矩陣

矩陣是一個二維數(shù)組,和向量一樣,每個元素必須擁有相同的數(shù)據(jù)類型。當維度超過2時,我們更建議使用數(shù)組

m <- matrix(1:20,nrow=5,ncol=4)

Arrays

數(shù)組

數(shù)組與矩陣類似,但是維度可以大于2,數(shù)據(jù)類型必須一樣。

a <- array(1:20,c(4,5))

Factors

因子

因子是R中的有序變量和類別變量。

類別變量也叫做名義變量,它沒有順序之分,比如男女,雖然編碼中可能男為1,女為2,但不具備數(shù)值計算含義。有序變量則表示一種順序關系,少年、青年、老年則是一種有序變量。

f <- factor(c("type1","type2","type1))

在factor函數(shù)中加入?yún)?shù)ordered = True,就表示為有序型變量了。

Lists

列表

它是R最復雜的數(shù)據(jù)類型,它可以是上述數(shù)據(jù)結構的組合。

l <- list(names = v,m,a,f )

上述例子就包含了向量、矩陣、數(shù)組、因子。我們可以使用雙重方括號[[ ]]選取列表中的元素。R中的下標不從0開始,所以list[[1]] 選取的是v。

Data Frames

數(shù)據(jù)框

在R和Python中為常用的數(shù)據(jù)結構。

R語言中為data.frame,Python中為Pandas的DataFrame。這里以R語言舉例。

數(shù)據(jù)框可以包含不同數(shù)據(jù)類型的列,它是比矩陣更廣泛的概念,也是R中最常用的數(shù)據(jù)結構。每一列的數(shù)據(jù)類型必須唯一。

x <- data.frame(col1,col2,col3)

Reading CSV Data

讀取CSV

這一塊比較坑的地方是中文,R語言對中文編碼的支持比較麻煩。

Reading Raw Data

讀取原始數(shù)據(jù)

不清楚這和CSV的區(qū)別。

Subsetting Data

構建數(shù)據(jù)集

R提供了常用函數(shù)方便我們構建數(shù)據(jù)集(反正來去都那幾個英文)。

數(shù)據(jù)集合并使用merge函數(shù)。

添加數(shù)據(jù)行使用rbind函數(shù)。

dataframe選取子集用[ row,column]。

刪除變量可以通過 <- Null。

復雜查詢則使用subset函數(shù)。

如果已經(jīng)習慣SQL函數(shù),可以載入library(sqldf)后用sqldf函數(shù)。

Manipulate Data Frames

操作數(shù)據(jù)框

除了上面的構建數(shù)據(jù)集的技巧,如果我們需要更復雜的操作,加工某些數(shù)據(jù),如求變量和、計算方差等,則要用到R語言的其他函數(shù)。

R本身提供了abs(x),sort(x),mean(x),cos(x)等常用的統(tǒng)計方法,如何應用在數(shù)據(jù)框呢?我們使用apply函數(shù),可將任意一個函數(shù)應用在矩陣、數(shù)組、數(shù)據(jù)框中。

apply(dataframe,margin,fun)

Functions

函數(shù)

R語言自帶了豐富的統(tǒng)計函數(shù),可以通過官方/第三方文檔查詢,R也可以自建函數(shù)。

myfunction <- function(arg1,arg2,……){

statements

return(object)

}

函數(shù)中的對象只在函數(shù)內(nèi)部使用。如果要調(diào)試函數(shù),可以使用warning( ),messagr( ),stop( )等糾錯。

Factor Analysis

因子分析

我不知道這塊的編程基礎內(nèi)容為什么要加入因子分析。R語言的因子分析函數(shù)是factanal()

Install Pkgs

調(diào)包俠

R的包非常豐富(Python更是),可以通過cran下載,包括爬蟲、解析、各專業(yè)領域等。函數(shù)library可以顯示有哪些包,可能直接加入包。RStudio則提供了與包相關的豐富查詢界面。

——————

Machine Learning機器學習

數(shù)據(jù)科學的終極應用,現(xiàn)在已經(jīng)是深度學習了。這條路也叫從調(diào)包到科學調(diào)參。這里的算法屬于經(jīng)典算法,但是向GBDT、XGBoost、RF等近幾年競賽中大發(fā)異彩的算法沒有涉及,應該是寫得比較早的原因。

What is ML?

機器學習是啥子喲

機器學習,區(qū)別于數(shù)據(jù)挖掘,機器學習的算法基于統(tǒng)計學和概率論,根據(jù)已有數(shù)據(jù)不斷自動學習找到最優(yōu)解。數(shù)據(jù)挖掘能包含機器學習的算法,但是協(xié)同過濾,關聯(lián)規(guī)則不是機器學習,在機器學習的教程上看不到,但是在數(shù)據(jù)挖掘書本能看到。

Numerical Var

數(shù)值變量

機器學習中主要是兩類變量,數(shù)值變量和分量變量。

數(shù)值變量具有計算意義,可用加減乘除。數(shù)據(jù)類型有int、float等。

在很多模型中,連續(xù)性的數(shù)值變量不會直接使用,為了模型的泛化能力會將其轉換為分類變量。

Categorical Var

分類變量

分類變量可以用非數(shù)值表示,它是離散變量。

有時候為了方便和節(jié)省存儲空間,也會用數(shù)值表示,比如1代表男,0代表女。但它們沒有計算意義。在輸入模型的過程中,會將其轉變?yōu)閱∽兞俊?/p>

Supervised Learning

監(jiān)督學習

機器學習主要分為監(jiān)督學習和非監(jiān)督學習。

監(jiān)督學習是從給定的訓練集中學習出一個超級函數(shù)Y=F(X),我們也稱之為模型。當新數(shù)據(jù)放入到模型的時候,它能輸出我們需要的結果達到分類或者預測的目的。結果Y叫做目標,X叫做特征。當有新數(shù)據(jù)進入,能夠產(chǎn)生新的準確的結果。

既然從訓練集中生成模型,那么訓練集的結果Y應該是已知的,知道輸入X和輸出Y,模型才會建立,這個過程叫做監(jiān)督學習。如果輸出值是離散的,是分類,如果輸出值是連續(xù)的,是預測。

監(jiān)督學習常見于KNN、線性回歸、樸素貝葉斯、隨機森林等。

Unsupervied Learning

非監(jiān)督學習

無監(jiān)督學習和監(jiān)督學習,監(jiān)督學習是知道結果Y,無監(jiān)督學習是不知道Y,僅通過已有的X,來找出隱藏的結構。

無監(jiān)督學習常見于聚類、隱馬爾可夫模型等。

Concepts, Inputs & Attributes

概念、輸入和特征

機器學習包括輸入空間、輸出空間、和特征空間三類。特征選擇的目的是篩選出結果有影響的數(shù)據(jù)。

Traning & Test Data

訓練集和測試集

機器學習的模型是構建在數(shù)據(jù)集上的,我們會采用隨機抽樣或者分層抽樣的將數(shù)據(jù)分成大小兩個部分,拿出大部分樣本進行建模型,留小部分樣本用剛建立的模型進行預報,通過小樣本的預測結果和真實結果做對比,來判斷模型優(yōu)劣。這個叫做交叉驗證。

交叉驗證能夠提高模型的穩(wěn)定性,但不是完全保險的,依舊有過擬合的風險。

通常用80%的數(shù)據(jù)構建訓練集,20%的數(shù)據(jù)構建測試集

Classifier

分類

監(jiān)督學習中,如果輸出是離散變量,算法稱為分類。

輸出的離散變量如果是二元的,則是二元分類,比如判斷是不是垃圾郵件{是,否},很多分類問題都是二元分類。與之相對的是多元分類。

Prediction

預測

監(jiān)督學習中,如果輸出是連續(xù)變量,算法稱為預測。

預測即可以是數(shù)值型,比如未來的銷量,也可以是介于[0,1]間的概率問題。

有些算法適合分類、有些則是預測,也有算法可以兩者都能做到。

Lift

Lift曲線

它是衡量模型性能的一種最常用的度量,它考慮的是模型的準確性。它核心的思想是以結果作導向,用了模型得到的正類數(shù)量比不用模型的效果提升了多少?

比如某一次活動營銷,1000個用戶會有200個響應,響應率是20%。用了模型后,我通過算法,講用戶分群,挑出了最有可能響應的用戶200個,測試后的結果是有100個,此時的響應率變成了50%。此時的Lift值為5。

上圖就是按Lift值畫出曲線的范例??v坐標是lift值,橫坐標是挑選的的閥值。閥值越低,說明挑選的越嚴格,按上文的例子理解,挑選的就是最有可能響應的用戶。當沒有閥值時,lift就為0了。閥值通常是根據(jù)預測分數(shù)排序的。

還有一種常用的叫ROC曲線。

Overfitting

過擬合

過擬合是機器學習中常碰到的一類問題。主要體現(xiàn)在模型在訓練數(shù)據(jù)集上變現(xiàn)優(yōu)秀,而在真實數(shù)據(jù)集上表現(xiàn)欠佳。造成的原因是為了在訓練集上獲得出色的表現(xiàn),使得模型的構造如此精細復雜,規(guī)則如此嚴格,以至于任何與樣本數(shù)據(jù)稍有不同的文檔它全都認為不屬于這個類別。

上圖,黑色的線條是正常模型,綠色的線條是過擬合模型。

不同的機器學習算法,是否容易擬合的程度也不僅相同。通常采用加大樣本數(shù)據(jù)量、減少共線性、增加特征泛化能力的方法解決過擬合。

與之相反的是欠擬合。

Bias & Variance

偏差和方差

偏差和方差除了統(tǒng)計學概念外,它們也是解釋算法泛化能力的一種重要工具。

算法在不同訓練集上得到的結果不同,我們用偏差度量算法的期望預測和真實結果的偏離程度,這代表算法本身的擬合能力,方差則度量了算法受數(shù)據(jù)波動造成的影響。

偏差越小、越能夠擬合數(shù)據(jù),方差越小、越能夠扛數(shù)據(jù)波動。

Trees & Classification

樹分類

樹分類是需要通過多級判別才能確定模式所屬類別的一種分類方法。多級判別過程可以用樹狀結構表示,所以稱為樹分類器。最經(jīng)典的便是決策樹算法。

Classification Rate

分類正確率

為了驗證模型的好壞,即最終判斷結果的對錯,我們引入了分類正確率。

分類正確率即可以判斷二分類任務,也適用于多分類任務。我們定義分類錯誤的樣本數(shù)占總樣本的比率為錯誤率,精確度則是正確的樣本數(shù)比率。兩者相加為1。

為了更好的判斷模型,主要是業(yè)務需要,我們還加入了查準率(precision),查全率(recall),查準率是預測為真的數(shù)據(jù)中有多少是真的。查全率是真的數(shù)據(jù)中有多少數(shù)據(jù)被預測對了。

這個有點繞,主要是為了業(yè)務判斷,假如我們的預測是病人是否患了某個致死疾病,假設得病為真,我們顯然希望把全部都得病的患者找出來,那么此時查全率(得病的患者有多少被準確預測出來)比查準率(預測得病的患者有多少真的得病了)更重要,因為這個會死人,那么肯定是選擇有殺錯無放過。此時更追求查全率。

算法競賽就是基于上述指標評分的。

Decision Tress

決策樹

它是基本的分類和回歸方法??梢岳斫獬蒊f-Then的規(guī)則集,每一條路徑都互斥且完備。決策樹分為內(nèi)部節(jié)點和葉節(jié)點,內(nèi)部節(jié)點就是If-Then的規(guī)則,葉節(jié)點就是分類結果。

決策樹主流有ID3、C4.5(C5.0也有了)、CART算法。

因為決策樹形成的結構是根據(jù)樹形遞歸產(chǎn)生,它對訓練數(shù)據(jù)表現(xiàn)良好,但是會產(chǎn)生過擬合現(xiàn)象。為了避免這一現(xiàn)象,會進行減枝。剪紙通過損失函數(shù)或代價函數(shù)實現(xiàn)。

決策樹的優(yōu)點是:高校簡單、可解釋性強、在大型數(shù)據(jù)庫有良好表現(xiàn)、適合高維數(shù)據(jù)。

缺點是:容易過擬合、并且分類結果會傾向擁有更多數(shù)值的特征(基于信息增益)。

隨機森林算法是基于決策樹的。

Boosting

提升方法

屬于集成學習的一種。提升方法Boosting一般是通過多個弱分類器組成一個強分類器,提高分類性能。簡而言之是三個臭皮匠頂一個諸葛亮。

通過對訓練集訓練出一個基學習器,然后根據(jù)基學習器的分類表現(xiàn)跳轉和優(yōu)化,分類錯誤的樣本將會獲得更多關注,以此重復迭代,最終產(chǎn)生的多個基分類器進行加強結合得出一個強分類器。

主流方法是AdaBoost,以基分類器做線性組合,每一輪提高前幾輪被錯誤分類的權值。

Naive Bayes Classifiers

樸素貝葉斯分類

它基于貝葉斯定理的分類方法。樸素貝葉斯法的使用條件是各條件互相獨立。這里引入經(jīng)典的貝葉斯定理:

在算法中,我們的B就是分類結果Target,A就是特征。意思是在特征已經(jīng)發(fā)生的情況下,發(fā)生B的概率是多少?

概率估計方法有極大似然估計和貝葉斯估計,極大似然估計容易產(chǎn)生概率值為0的情況。

優(yōu)點是對缺失數(shù)據(jù)不太敏感,算法也比較簡單。缺點是條件互相獨立在實際工作中不太成立。

K-Nearest Neighbour

K近鄰分類。

K近鄰分類的特點是通過訓練數(shù)據(jù)對特征向量空間進行劃分。當有新的數(shù)據(jù)輸入時,尋找距離它最近的K個實例,如果K個實例多數(shù)屬于某類,那么就把新數(shù)據(jù)也算作某類。

特征空間中,每個訓練數(shù)據(jù)都是一個點,距離該點比其他點更近的所有點將組成一個子空間,叫做單元Cell,這時候,每個點都屬于一個單元,單元將是點的分類。

k值的選擇將會影響分類結果,k值越小,模型越復雜,容易過擬合,不抗干擾。K值越大,模型將越簡單,分類的準確度會下降。上圖是K=1時的子空間劃分,下圖是K=5時的子空間劃分,從顏色很直觀的看到影響。

K近鄰的這類基于距離的算法,訓練的時間復雜度低,為O(n),適用范圍范圍廣。但是時間復雜度低是通過空間復雜度換來的,所以需要大量的計算資源和內(nèi)存。另外樣本不平衡問題解決不了。

Logistic Regression

邏輯斯諦回歸,簡稱邏輯回歸。

邏輯回歸屬于對數(shù)線性模型,雖然叫回歸,本質(zhì)卻是分類模型。如果我們要用線性模型做分類任務,則找到sigmoid函數(shù)將分類目標Y和回歸的預測值聯(lián)系起來,當預測值大于0,判斷正例,小于0為反例,等于0任意判別,這個方法叫邏輯回歸模型。

模型參數(shù)通過極大似然法求得。邏輯回歸的優(yōu)點是快速和簡單,缺點是高維數(shù)據(jù)支持不好,容易錢擬合。

Ranking

排序,PageRank

這里應該泛指Google的PageRank算法。

PageRank的核心思想有2點:

如果一個網(wǎng)頁被很多其他網(wǎng)頁鏈接到的話說明這個網(wǎng)頁比較重要,也就是pagerank值會相對較高;

如果一個pagerank值很高的網(wǎng)頁鏈接到一個其他的網(wǎng)頁,那么被鏈接到的網(wǎng)頁的pagerank值會相應地因此而提高。

PageRank并不是唯一的排名算法,而是最為廣泛使用的一種。其他算法還有:Hilltop 算法、ExpertRank、HITS、TrustRank。

Linear Regression

線性回歸

線性回歸是機器學習的入門級別算法,它通過學習得到一個線性組合來進行預測。

一般寫成F(x) = wx +b,我們通過均方誤差獲得w和b,均方誤差是基于歐式距離的求解,就是最小二乘法啦。找到一條線,所有數(shù)據(jù)到這條線的歐式距離之和最小。

線性回歸容易優(yōu)化,模型簡單,缺點是不支持非線性。

Perceptron

感知機

它是二類分類的線性分類模型。

它通過一個wx+b的超平面S劃分特征空間。為了找出這個超平面,我們利用損失函數(shù)極小化求出。超平面的解不是唯一的,采取不同初值或誤分類點將會造成不同結果。

Hierarchical Clustering

層次聚類

層次聚類指在不同層次對數(shù)據(jù)集進行劃分,從而形成樹形的聚類結構。

它將樣本看作一個初始聚類簇,每次運算找出最近的簇進行合并,該過程不斷合并,直到滿足預設的簇的個數(shù)。

上圖就是所有樣本重復執(zhí)行最終K=1時的結果。橫軸是聚類簇之間的距離,當距離=5時,我們有兩個聚類簇,當距離=3時,我們有四個聚類簇。

K-means Clusterning

K聚類

全稱K均值聚類,無監(jiān)督學習的經(jīng)典算法。物以類聚人以群分的典型代表。

K聚類需要將原始數(shù)據(jù)無量綱化,然后設置聚類點迭代求解。K聚類的核心是針對劃分出的群簇使其最小化平方誤差。直觀說,就是讓樣本緊密圍繞群簇均值。

設置多少個聚類點多少有點主觀的意思,這也是K聚類唯一的參數(shù),考察的是外部指標,即你聚類本身是想分出幾類,通過對結果的觀察以及E值判斷。

K聚類不適合多維特征,一般3~4維即可,維度太多會缺乏解釋性,RFM模型是其經(jīng)典應用。因為物以類聚,所以對偏離均值點的異常值非常敏感。

Neural Networks

神經(jīng)網(wǎng)絡

神經(jīng)網(wǎng)絡是一種模仿生物神經(jīng)系統(tǒng)的算法,神經(jīng)網(wǎng)絡算法以神經(jīng)元作為最基礎的單位,神經(jīng)元通過將輸入數(shù)據(jù)轉換為0或1的閥值,達到激活與否的目的,但是0和1不連續(xù)不光滑,對于連續(xù)性數(shù)據(jù),往往用sigmoid函數(shù)轉換成[0,1] 間的范圍。

將這些神經(jīng)單元以層次結構連接起來,就成了神經(jīng)網(wǎng)絡。因為這個特性,神經(jīng)網(wǎng)絡有許多的參數(shù),可不具備可解釋性。多層神經(jīng)網(wǎng)絡,它的輸入層和輸出層之間的層級叫做隱層,就是天曉得它代表什么含義。

神經(jīng)網(wǎng)絡的層數(shù)一般是固定的,但我們也能將網(wǎng)絡層數(shù)作為學習的目標之一,找到最適合的層數(shù)。

另外,層數(shù)越多,參數(shù)越多的神經(jīng)網(wǎng)絡復雜度越高,深度學習就是典型的層數(shù)很多的神經(jīng)網(wǎng)絡。常見的有CNN、DNN、RNN等算法。

Sentiment Analysis

情感分析

比較前沿的一個領域。包括情感詞的正面負面分類,標注語料,情感詞的提取等。

情感分析可以通過情感關鍵詞庫計算,比如匯總開心、悲傷、難過的詞匯,計算情感值,再加入表示情感強烈程度的維度,如1~5的數(shù)值進行打分。用戶對商品評論的分析就是一個常見的情感分析:這手機太TM破了,就是5分憤怒。

然而情感詞典需要維護,構建成本較高,我們也可以用機器學習的方法將其看待為分類問題。講關鍵詞特征向量化,常用詞袋模型(bag-of-words )以及連續(xù)分布詞向量模型(word Embedding),特征化后,往往用CNN、RNN或者SVM算法。

Collaborative Fitering

協(xié)同過濾

簡稱CF算法。協(xié)同過濾不屬于機器學習領域,所以你在機器學習的書上看不到,它屬于數(shù)據(jù)挖掘。

協(xié)同過濾的核心是一種社會工程的思想:人們更傾向于向口味比較類似的朋友那里獲得推薦。協(xié)同過濾主要分為兩類,基于用戶的user-based CF以及基于物體的item-based CF。雖然協(xié)同過濾不是機器學習,但它也會用到SVD矩陣分解計算相似性。

優(yōu)點是簡單,你并不需要基于內(nèi)容做內(nèi)容分析和打標簽,推薦有新穎性,可以發(fā)掘用戶的潛在興趣點。

協(xié)同過濾的缺點是無法解決冷啟動問題,新用戶沒行為數(shù)據(jù),也沒有好友關系,你是最不到推薦的;推薦會收到稀疏性的約束,你的行為越多,才會越準;隨著數(shù)據(jù)量的增大,算法會收到性能的約束,并且難以拓展。

協(xié)同過濾可以和其他算法混合,來提高效果。這也是推薦系統(tǒng)的主流做法。

Tagging

標簽/標注

這里稍微有歧義、如果是標簽,間接理解為用戶畫像,涉及到標簽系統(tǒng)。用戶的男女、性別、出生地皆是標簽,越豐富的標簽,越能在特征工程中為我們所用。

如果是分類標簽/標注,則是數(shù)據(jù)標注。有監(jiān)督學習需要訓練集有明確的結果Y,很多數(shù)據(jù)集需要人工添加上結果。比如圖像識別,你需要標注圖像屬于什么分類,是貓是狗、是男是女等。在語音識別,則需要標注它對應的中文含義,如果涉及到方言,則還需要將方言標注為普通話。

數(shù)據(jù)標注是個苦力活。

注:本文摘自秦路,版權著作權屬原創(chuàng)者所有。欲了解更多大數(shù)據(jù)行業(yè)相關資訊,可搜索數(shù)據(jù)觀(中國大數(shù)據(jù)產(chǎn)業(yè)觀察網(wǎng)www.21jieyan.cn)進入查看。

責任編輯:湯德正

分享: