怎樣衡量一個機器學習工程師對演算法的掌握程度?

本題已加入知乎圓桌 ?「機器學習 · 學以致用」,更多「機器學習」相關話題討論歡迎關注。


我們一般會從幾個方面來看待:

a. 了解級:模型的各種演算法都有一些常規的知識點,AI工程師首先得了解這些知識點;能了解演算法的內部構成模塊;能對比多種演算法就更好。比如CNN網路的基本構成是什麼樣的。

b. 理解級: 模型因為什麼而產生?它的構成模塊都有什麼功用?它的假設前提是什麼?它的學習邊界在哪裡, 能做什麼,不能做什麼。比如微博大數據是否一定能讓演算法得出的模型比從小數據集得到的效果更好,好與不好那又為什麼。

c. 應用級: 在業務中應用合適的演算法,適配的具體數據和場景,創造價值。

d. 改造級甚至創造級: 可以根據實際情況自行改造演算法的各個組成,比如是否有自行根據問題特點改造過目標函數,效果如何等。


謝邀,我厚著臉皮說我問別人的題,拋磚引玉。

我問的題都比較水了,畢竟不是真做機器學習research的地方。只是用一用。

我負責電話面試的時候,喜歡問有ground truth的問題。比如算概率了,問問線性代數,統計,優化的基本概念了。比如討論邏輯回歸的時候問一下odds的概念,貝葉斯線性回歸要是需要強制係數非負該怎麼辦,核函數,relu函數是什麼意思。什麼叫顯著,什麼叫p值,precision,recall等等。因為問的比較跳躍,也擴展到了三門課左右的內容,所以其實我就是想知道回答問題的人是突擊死記硬背的,還是他這些年一直對這些概念心裡有數。

我自己感覺電話面試還是「課本」一點比較好,發散問題有時候一扯扯十分鐘,我也不知道他到底會不會。。。

對了, 電話面試還要用十分鐘過簡歷,怕作假。

我負責onsite的時候,既然是面對面,可以問的發散一些了。我一般準備兩部分。

第一部分考察列公式和數據處理能力。讓被面試者簡單寫點公式,比如lasso,邏輯回歸,非負矩陣分解,svm的目標函數。再就是說我有幾個表格,我現在要統計出來什麼什麼樣子的人的分布,你幫我想想怎麼弄,會sql最好,pandas也行,實在不行用循環判斷能搞出來也行。

第二部分就是彷彿我倆是一個隊伍裡面的人了。一起做個case study。我會把我自己碰到的中等難度的問題包裝成一個case,給他看看raw data,描述一下問題,看能不能做?用什麼模型,怎麼建立feature之類的。一般都不僅僅是分類,可能會夾雜半監督學習或者時間序列等等小彎彎繞繞。基於他給出的模型,我會問一些follow up question,那些就太有諮詢行業的特色了,我就不說了。

最後那個case study很重要,我是在模擬以後兩人一起合作中的討論,配合會不會很順暢。我就說一點,作為面試者,聽到面試官對自己的回答有不同建議的時候,慢一點,想一想,再給自己做defense。別激動,不要抱著一種面試官在刁難你或者在不懂裝懂瞎指揮的心態去defense。

我剛才說我問的比較水,應該也不算真的放水吧,只是我們想找的確實不是純工程師,所以我總不能讓人家寫code,或者做證明,做推導吧。

總之,上面那些如果是一套考題的話,肯定不是考一百分才ok的。考多少分ok還是要看當時的人才市場。要是招不到人,考三十分也ok呀。


關於這個問題社區有一篇不錯的文章《想知道機器學習掌握的怎麼樣了嗎?這有一份自測題(附答案和解析)》分享過來,期望對大夥有所幫助

引言

人類對於自動化和智能化的追求一直推動著技術的進步,而機器學習這類型的技術對各個領域都起到了巨大的作用。隨著時間的推移,我們將看到機器學習無處不在,從移動個人助理到電子商務網站的推薦系統。即使作為一個外行,你也不能忽視機器學習對你生活的影響。

本次測試是面向對機器學習有一定了解的人。參加測試之後,參與者會對自己的機器學習方面知識有更深刻的認知。

目前,總共有1793 個參與者參與到了測試中。一個專門為機器學習做的測試是很有挑戰性的,我相信你們都已經躍躍欲試,所以,請繼續讀下去。

那些錯過測試的人,你們錯過了一個極好的檢驗自己的機會。但是,你也可以閱讀本文,看看能否解答下面問題的答案,這樣你也能收穫不少。

下圖表示的是參與測試人的成績分布,這也許會幫助你評估你的測試成績。

總體結果

你可以點擊這裡來獲取所有得分。我們有超過600人參與到了技能測試中,最高分是28分,這裡還有一些其他統計量。

平均數 14.42

中位數 16

眾數 17

另外,您的得分可能和通告欄上的不一樣,因為我們移除了有錯誤的問題,並且對每個人都重新打分了。

機器學習參考文獻

  1. Machine Learning basics for a newbie
  2. 16 New Must Watch Tutorials, Courses on Machine Learning
  3. Essentials of Machine Learning Algorithms

問題1:

在n維空間中,以下哪一個方法最適用於異常點檢測?

A.正態概率圖

B.盒圖

C.Mahalonobis 距離

D.散點圖

答案:C

Mahalonobis 距離是基於卡方分布的多變數異常的程度的統計量。更多內容點擊此處。

問題2

線性回歸在以下哪些方面和多元回歸不一樣?

A. 它是專門用來預測一個事件的概率

B. 擬合優度指數

C. 在回歸係數的估計方面

D. 以上所有

答案:D

A:線性回歸用來解決分類問題,我們可以計算出事件發生的概率

B:總體來說,擬合優度測試是用來測量數據與模型的一致性,我們用邏輯回歸來檢驗模型擬合程度。

C:擬合邏輯回歸模型之後,我們可以以他們的係數為目標,觀察獨立特徵之間的關係(正相關或負相關)。

問題3:

引導數據的意義是什麼?

A.從M個總體中有放回的抽樣出m個特徵

B.從M個總體中無放回的抽樣出m個特徵

C.從N個總體中有放回的抽取n個樣本

D.從N個總體中無有放回的抽取n個樣本

答案:C

如果我們沒有足夠的數據來訓練我們的演算法,我們就可以從訓練集中有放回的隨機重複一些數據項。

問題4

「過擬合只是監督學習中的問題,對於無監督學習影響不大」這句話是正確還是錯誤

A.正確

B.錯誤

答案:B

我們可以使用無監督矩陣來評估一個無監督機器學習演算法。舉個例子,我們可以用「調整蘭德係數」來評估聚類模型。

問題5:

關於選擇k層交叉檢驗中「k」的值,以下說法正確的是?

A.k並不是越大越好,更大的k會減慢檢驗結果的過程

B.選擇更大的k會導致降低向真實期望錯誤的傾斜

C.選擇總是能最小化交叉驗證中的方差的k

D.以上所有

答案:D

更大的k會減少過高估計了真正的預期誤差的情況(因為訓練層更接近總體數據集),但是會帶來更長的運行時間(因為這樣會接近留一交叉的極限情況),當選擇k的時候,我們也要考慮k層精度之間的方差。

問題6:

回歸模型具有多重共線性效應,在不損失太多信息的情況下如何應對這種情況?

1.去除所有共線變數1.去除所有共線變數

2.去除一個變數而不是都去掉

3.我們可以計算VIF(方差膨脹因子)來檢驗多重共線性效應,然後根據情況處理

4.去除相關的變數可能會導致信息的丟失。為了保證數據的完整性,我們應該選取比如嶺回歸和套索回歸等懲罰回歸模型。

以上那些是正確的?

A. 1

B. 2

C. 2 和3

D. 2,3 和 4

答案:D

為了檢查多重共線性,我們可以創建一個相關矩陣來識別和刪除具有75%相關性的變數(閾值的選擇是主觀的)。此外,我們使用VIF(方差膨脹因子)來檢查多重共線性,如果VIF小於4表示沒有多重共線性,如果大於10則表示嚴重的多重共線性。我們也可以使用一個寬容量作為多重共線性的指數。

但是,移除相關變數會導致信息的損失。為了保證數據的完整性,我們應該選取比如嶺回歸和套索回歸等懲罰回歸模型。我們也可以在變數中增加隨機雜訊,這樣數據會變得不一樣。但是這種方法會降低預測的準確性,所以要慎用。

問題7:

評估完模型後,我們發現模型中有很高的偏差。我們怎樣來減少這個偏差?

A.減少模型中特徵的數量

B.增加模型中特徵的數量

C.增加模型中的數據點

D.B和C

E.以上所有

答案:B

如果模型偏差大,說明模型相對過於簡單。我們可以在特徵空間中增加更多的特徵來提高模型的魯棒性。增加數據點也會減少方差。

問題8:

當我們建立基於決策樹的模型時,我們將有最高信息增益的節點分離出來作為屬性, 在下圖中,哪一個屬性有最高的信息增益?

A. Outlook

B. Humidity

C. Windy

D. Temperature

答案:A

信息增益隨子集平均純度的增加而增加。要了解信息增益的計算,點這裡閱讀。你也可以查看這張幻燈片

問題9:在決策樹中,當一個節點分叉的時候,以下關於「信息增益」正確的是?

1.不純的節點越少,越需要更多的信息來描述種群

2.信息增益可以用熵作為「1-Entropy」來推導

3.信息增益偏向於數值大的屬性

A. 1

B. 2

C. 2 和3

D. 都正確

答案:C

想了解詳情,請閱讀這篇文章和這個幻燈片。

問題10:使用SVM模型遇到了欠擬合的問題,以下哪個選項能提高模型性能?

A.增加懲罰參數「C」

B.減少懲罰參數

C.減少核係數(gamma的值)

答案:A

如果是欠擬合情況,我們需要增加模型的複雜性,如果我們增大C,則意味著決策邊界變複雜,所以A是正確答案。

問題11:

假如我們已經畫出SVM演算法中的不同點的gamma值(Kernel coefficient)。但由於一些原因,我們沒有在可視化界面中顯示出來。在這種情況下,以下哪個選項最好的解釋了三張圖的gamma值關係(圖中從左向右分別是圖1,、圖2、圖3,對應的gamma值分別是g1,、g2、g3)。

A. g1 &> g2 &> g3

B. g1 = g2 = g3

C. g1 &< g2 &< g3

D. g1 &>= g2 &>= g3

E. g1 &<= g2 &<= g3

答案:C

如果gamma值高,則會盡全力去擬合數據集中的每一條數據,會帶來過擬合問題。所以最合適的選項是C。

問題12:

我們在解決一個分類問題(二值分類預測)。然而,我們並不是要得到0或1的真實結果,而是要獲取每一個類的概率。現在假設我有一個概率模型,並且使用一個0.5的閾值來預測結果,如果概率大於等於0.5,則認為是1,如果小於0.5,我們則認為是0。如果我們使用一個比0.5高的閾值,一下哪條最合適?

1.增加閾值那麼分類器會有相同或者更低的查對率

2.增加閾值分類器會有更高的查對率

3.增加閾值會有相同或者更高的準確率

4.增加閾值會有更低的準確率

A. 1

B. 2

C. 1和 3

D. 2和 4

E. 無

答案:C

想了解調整閾值對查對率和準確率的影響,請參考這篇文章。

問題13:

當使用比例失調的數據(數據集中99%的negative class和1%的positive class)進行「點擊率」預測的時候,假如我們的準確率是99%,那麼我們的結論是?

準確率很高,我們不用再做任何工作。

B.準確率不夠好,我們需要嘗試構建一個更好的模型

C.無法判斷這個模型

D.以上都不正確

答案:B

當使用不平衡數據集的時候,準確率不能作為性能的指標,因為99%(正如上文提到的)可能只是預測多數類別正確,但是往往重要的是少數的類(1%)。因此,對於這樣的模型,我們應該使用敏感性和特異性來描述分類器的性能。如果佔少數的類別預測不準的話,我們需要採取一些必要的措施。更多不平衡分類問題,可以參考這篇文章

問題14:

比方說,我們使用KNN訓練觀測數據較少的模型(以下是訓練數據的快照,x和y分別表示兩個屬性,「+」「o」分別表示兩種標籤)。已知k=1,leave one out 交叉驗證的錯誤率會是多少。

A. 0%

B. 100%

C. 從0 到 100%

D. 以上沒有

答案:B

在Leave-One-Out交叉驗證中,我們選取n-1條觀測量作為訓練集,1條觀測量用來驗證。如果把每個點作為交叉驗證點並找到最近的點總會得到相反的類別。所以錯誤率是100%。

問題15:

當我們使用大數據集進行決策樹訓練的時候,一下哪個選項可以用來減少訓練時間?

1.增加樹的深度

2.增加學習率

3.減少樹的深度

4.減少樹的數量

A. 2

B. 1 and 2

C. 3

D. 3 和 4

E. 2 和 3

F. 2, 3 和 4

答案:C

如果決策樹的參數是固定的話,我們可以考慮以下的選項。

增加深度會導致所有節點擴張,因此增加深度會導致時間變長。

在單一決策樹種,學習率是不能作為一個可調整的參數的。

使用決策樹時,我們只會建一顆樹。

問題16:

關於神經網路,一下那種說法是正確的?

1.在測試數據中增加層數可能會增加分類錯誤

2.在測試數據中減少層數總會減少分類錯誤

3.在測試數據中增加層數總會減少分類錯誤

A.1

B.1和3

C.1 和2

D. 2

答案:A

通常來說,增加層數會讓模型更加一般化,所以它將會在訓練集和測試集上都表現更優異。但這個不是真理,在這篇文章中,筆者發現深層的網路比淺層的網路有更高的錯誤率。所以選項2和3都是錯誤的,因為這個假設不總是正確的,而1隻是說可能是正確的。

問題17:

假設我們使用原始的非線性可分離SVM最優化目標函數,我們做什麼可以保證結果是線性可分的?

A. C = 1

B. C = 0

C. C = 無窮大

D.以上沒有正確答案

答案C:

如果我們使用原始的非線性可分離SVM最優化目標函數,我們需要將C設置成無窮大來保證結果是線性可分的。因此C是正確答案。

問題18:

訓練完SVM之後,我們可以丟掉所以不支持向量的樣本而不影響對新的樣本進行分類。

A.正確

B.錯誤

答案:A

這是正確的,因為只有支持向量會影響邊界。

問題19:

以下哪些演算法可以藉助神經網路來構建?

1.K-NN

2.線性回歸

3.邏輯回歸

A.1 和2

B.2 和 3

C.1, 2 和 3

D.無

答案:B

1.KNN是一個機遇實例的學習方法,它沒有用來訓練的參數,所以它不能用神經網路來構建

2.神經網路的最簡單形式就是最小二乘回歸。

3.神經網路和邏輯回歸有關。主要在於,我們可以把邏輯回歸看成一層神經網路。

問題20:

請選擇可以用來實施隱馬爾可夫模型的數據集。

A.基因序列數據集

B.電影評論數據集

C.股票價格數據集

D.以上所有

答案D:

以上所有的數據集都可以用隱馬爾可夫模型。

問題21:

我們想在在一個百萬級的數據集上構建機器學習模型,每條數據有5000個特徵。可是訓練這麼大量的數據集會有很多困難,一下哪些步驟可以有效地訓練模型?

A.我們可以從數據集中隨機選取一些樣本,在樣本上構建模型

B.我們可以嘗試聯機機器學習演算法

C.我們可以用主成分分析來減少特徵

D.B和C

E.A和B

F.以上所有

答案:F

在一個內存有限的機器上處理高維數據是一項非常費力的工作。以下的方法可以用來應對這樣的情況。

我們可以採取隨機採樣的方式,這意味著我們創建一個更小的數據集。舉個例子來說,我們可以抽取300000條數據,每條有1000個特徵然後再進行計算。

我們可以使用展示在Vowpal Wabbit中的聯機學習演算法

我們可以使用主成分析來選取能反映最大方差的部分。

因此所有的都是正確的。

問題22:

我們想減少數據的特徵,以下哪些做法是合適的?

1.使用預選的方式

2.使用向後消除的方式

3.首先使用所有特徵來計算模型的準確度。我們選擇一個特徵,然後將測試集的該特徵的數值都打亂,然後對打亂過的數據集進行預測。經過對預測模型的分析,如果模型準確率提高,則刪掉這個屬性

4.查找關聯性表,關聯性高的特徵就可以去掉

A. 1和2

B. 2, 3和 4

C. 1, 2 和4

D. 以上所有

答案:D

l預選和向後消除是特徵選擇的兩個常用的主要方法。

l如果不用上面的兩種方法,我們也可以選擇3中所說的方法,這種方法應對大數據量時非常有效。

l我們也可以使用基於特徵選擇的關聯分析,然後去除共線性特徵。

問題23:

關於隨機森林和梯度提升樹,請選擇正確的選項。

1.在隨機森林中,中間樹互相不獨立,而在梯度回歸樹中,中間樹相互獨立。

2.他們都使用隨機特徵子集來構建中間樹。

3.在梯度提升樹的情況下我們可以生成並行樹,因為樹互相獨立。

4.梯度提升樹在任何數據集上都比隨機森林要好。

A. 2

B. 1 和 2

C. 1, 3 和 4

D. 2 和 4

答案 A:

1.隨機森林是基於bagging而梯度提升是基於boosting

2.這兩種演算法都使用隨機特徵子集來構建中間樹

3.由於隨機森林的中間樹互相獨立,因此演算法可以並行,而梯度提升樹則不可能。

4.這個不是絕對的,不同數據結果不同。

問題24:

對於主成分析轉換的特徵,樸素貝葉斯的基本假設是成立的,因為主成都是正交的,因此是無關的。這句話正確么?

A.正確

B.錯誤

答案:B

這句話是錯誤的。首先,不相關不等同於獨立。第二,轉換過的特徵也不一定是不相關的。

問題25:

以下關於主成分析哪些是正確的?

1.在PCA前必須將數據標準化

2.我們應該選擇說明最高方差的主成分

3.我們應該選擇說明最低方差的主成分

4.我們可以用PCA來可視化低維數據

A. 1, 2 和4

B. 2 和 4

C. 3 和 4

D. 1 和 3

E. 1, 3 和 4

答案:A

lPCA 對數據中變數的大小是敏感的,所以在PCA之前必須要對數據進行標準化。舉個例子,如果我們將一個變數的單位從km改成cm,該變數可能會從影響很小一躍成為主成分。

l第二條是正確的,因為我們總是選擇最大方差的主成分。

l有時候用低維來畫出數據是十分有效地。我們可以選擇前二的主成分,然後用散點圖來描繪數據。

問題26:

在下圖中的主成分的最佳數目是多少?

A. 7

B. 30

C. 35

D.不確定

答案:B

在上圖中,成分數為30時候就達到了最大的方差,所以選擇B

問題27:

數據科學家經常使用混合演算法來做預測,然後將混合演算法的結果合併(也叫集成學習)。這些混合演算法的輸出更加健壯且具有一般性,而且比任何一種單一模型都要準確。以下哪些選項是正確的?

A. 基礎模型有更高的相關性

B. 基礎模型有更低的相關性

C. 使用平均加權而不是投票的方式來集成

D. 基礎模型源自相同的演算法

答案B:

請參閱下面的集成指南來了解細節

Basics of Ensemble Learning Explained in Simple English

Kaggle Ensemble Guide

Easy questions on Ensemble Modeling everyone should know

問題28:

我們如何在監督的機器學習挑戰使用聚類方法?

1. 我們可以先創建簇,然後在不同簇中分別使用監督機器學習演算法。

2. 我們在使用監督機器學習演算法之前可以把簇的id作為特徵空間中額外的特徵。

3. 我們無法在使用監督機器學習演算法之前創建簇。

4. 我們在使用監督機器學習演算法之前不能把簇的id作為特徵空間中額外的特徵。

A. 2和4

B. 1和2

C. 3和4

D. 1和3

答案:B

l我們可以在不同的簇中使用不同的機器學習模型,這樣一來,預測的準確性可能會提高。

l增加簇的id可以提高預測的準確性,因為id是對數據很好的概括。

因此B是正確的。

問題29

以下的說法哪些是正確的?

1.一個機器學習模型如果能得到很高的 準確率,則說明這是個好的分類器。

2.如果增加一個模型的複雜度,測試錯誤總會增加。

3.如果增加一個模型的複雜度,訓練錯誤總會增加。

A. 1

B. 2

C. 3

D. 1和3

答案C:

當類不平衡的時候,準確率不是一個很好的評價指標。而 precision 和recall是最好的評價方式。

增加一個模型的複雜度可能會導致過擬合。而過擬合會引起訓練錯誤的減少和測試錯誤的增加。

問題30:

以下有關於梯度回歸樹演算法的說法正確的是?

當我們增加用於分割的最小樣本數時,我們總是試圖得到不會過擬合數據的演算法。

當我們增加用於分割的最小樣本數時, 數據會過擬合。

當我們減少用於擬合各個基本學習者的樣本的分數時,我們總是希望減少方差。

當我們減少用於擬合各個基本學習者的樣本的分數時,我們總是希望減少偏差。

A. 2和4

B. 2和3

C. 1和3

D. 1和4

答案: C

最小化樣本的數量,在分裂節點的地方用於控制過擬合, 太高的數值會導致欠擬合因此應該用CV來進行調整.

每棵樹選擇觀測值的分數是通過隨機採樣的方式來做的。如果數值比1小一點點則會使模型健壯,而且方差也會減小。典型的數值是0.8,當然,也要根據實際情況微調。

問題31:

以下哪個是KNN演算法的決策邊界?(下圖從左到右分別是A,B,C,D)

A) B

B) A

C) D

D) C

E) 不確定

答案:B

KNN演算法的原理是為觀測變數尋找K個最近鄰居,將鄰居中的多數的標籤賦給觀測變數。所以決策邊界不會是線性的。因此,選擇B。

問題32:

如果一個機器學習模型在測試集上獲得的100%的準確性,是否意味著在新的測試集上也能獲得100%的準確性。

A.是的,因為這個模型足夠一般,可以適用於所有類型的數據

B.不是,仍然有模型不能控制的因素,比如雜訊。

答案:B

答案選擇B,因為實際數據不可能沒有雜訊,所以不可能得到100%的準確性。

問題33:

以下是交叉驗證的常見方法:

i. Bootstrap with replacement.

ii. Leave one out cross validation.

iii. 5 Fold cross validation.

iv. 2 repeats of 5 Fold cross validation

如果樣本的數量是1000,那麼這這四種方法執行時間的排序是?

A. i &> ii &> iii &> iv

B. ii &> iv &> iii &> i

C. iv &> i &> ii &> iii

D. ii &> iii &> iv &> i

答案:B

Bootstrapping是一個統計的技術,屬於廣泛的重採樣的範疇,所以只有1個驗證集使用了隨機採樣。

Leave-One-Out cross validation的時間最長,因為我們要n次訓練模型(n是觀測值的數量)

5 Fold cross validation 會訓練五個模型,而訓練時間和觀測值數量無關。

2 repeats of 5 Fold cross validation則是訓練10個模型。

因此答案選擇B。

問題34:已取消

問題35:

變數選擇旨在選擇預測變數的「最佳」子集。當我們選擇變數的時候,考慮到系統的性能,我們需要注意些什麼?

1. 類似的多個變數

2. 模型的可解釋性

3. 特徵信息

4. 交叉檢驗

A. 1和4

B. 1, 2和3

C. 1,3和4

D. 以上所有

答案:C

如果幾個變數具有很高的xiang s,則會展現出共線性。

相對於模型的性能,我們不需要關注模型的可解釋性。

如果特徵有很高的信息,則會為模型帶來價值。

我們需要使用交叉檢驗來驗證模型的普遍性。

因此C是正確答案。

問題36:

線性回歸模型中的其他變數下列哪些語句是正確的關於?

1.R-Squared和Adjusted R-squared 都會增長

2.R-Squared 是常數,Adjusted R-squared 會增長

3.R-Squared 和Adjusted R-squared 都會減少 4.R-Squared 減少而 Adjusted R-squared 增長

A. 1和2

B. 1和3

C. 2和4

D.以上沒有正確的

答案: D

R-squared 不能確定係數估計和預測是否有偏差,這就是為什麼我們要評估殘差圖。 Adjusted R-squared 是R-squared的增強版,該方法調整了模型中預測器的數量. 如果有新方法將模型改進的幾率大於預期時,Adjusted R-squared 會增加。 當預測變數將模型改進的幾率小於預期時,它減少。

但是 R-squared 比adjusted R-squared 有更多的問題,因此predicted R-squared被提出。

如果為模型增加一個預測器,則R-squared會保持不變或者增加。

想討論更多,請點擊這裡。

問題37:

下圖我們畫出了在同一個數據集上解決回歸問題的三種不同模型,從下圖中我們可以總結出什麼?

1.和其他的相比,第一張圖的訓練錯誤最大。

2.最後一個是最好的模型,因為在第三張圖有最小的訓練錯誤。

3.第二個模型比第一個和第三個更健壯,因為它能更好的處理不可預見的數據。

4.第三個模型和前兩個相比屬於過擬合。

5.所有模型的性能都一樣,因為我們還沒有看到測試集。

A. 1和3

B. 1和4

C. 1, 3和4

D. 5

答案:C

對於自變數X來說,圖中數據的趨勢像一個多項式函數。最右邊圖中的多項式形式更複雜,準確率也最高,但是對於測試集則會表現不佳。而最左邊的圖很明顯屬於欠擬合的情況。

問題38:

在應用線性回歸時我們需要遵循哪些假設?

1. 由於線性回歸對於異常值很敏感,所以檢查異常值是十分重要的。

2. 線性回歸要求所有變數都遵循正態分布。

3. 線性回歸假設數據中很少或不存在多重共線性。

A. 1和2

B. 2和3

C. 1,2和3

D. 以上所有

答案:D

l異常值是數據中對最終回歸線的斜率影響最高的點。所以在回歸分析中去除離群值總是很重要的。

l了解自變數的分布是非常必要的。自變數的正負偏態分布可以影響模型的性能,並將高度偏態的自變數轉換正態將改進模型性能

l當模型包含彼此相關的多個要素時,會出現多重共線性。換句話說就是有多餘因素線性回歸假設在數據中應該有很少冗餘或者儘可能沒有。

問題39:

當建立線性模型的時候,我們會關注數據之間的關聯。假如我們在關聯矩陣中找到了三對數據(Var1和Var2 , Var2和Var3 , Var3和Var1) 的關聯分別是 -0.98, 0.45 and 1.23。那麼從這些信息中我們可以推斷出什麼?

1.Var1和Var2具有很高的關聯性。

2.Var1和Var2有很高的關聯度,所以它們具有多重共線性。所以我們要將Var1或者Var2移除出我們的模型。

3.Var3和Var1之間的關聯值是1.23是不可能的。

A. 1和3

B. 1和2

C. 1,2和3

D. 1

答案: C

lVar1和Var2的關聯值很高,所以是具有多重共線性的,因此我們可以從中去除一個。

l一般來說,關聯繫數高於0.7的說明數據具有多重共線性。

l第3個是不可能的,關聯繫數一定會在-1和1之間。

問題40:

如果獨立和不獨立的變數之間有很高的非線性且複雜的關係,那麼一個樹模型將會比一般的經典回歸有更好的效果。這個說法正確么?

A.正確

B.錯誤

答案:A

如果數據是非線性的,回歸模型就很難處理。而樹模型則會展現出很好的效果。

結束語

我希望您能喜歡本次測驗,您也會發現答案的解釋很有用。這次測試主要是集中了人們在日常使用機器學習過程中遇到的困難。

我們努力減少文章中的錯誤,但是由於筆者水平有限,可能文章中會有問題,所以如果您發現了,請在下面留言。當然,如果您有改進意見,也歡迎在下面留言。

我們將陸續推出更多的技能測試,請關注我們的更新。

如果您想測驗您的知識和技能,請登錄 Live Competitions ,和全世界的數據科學家pk!

本文由北郵@愛可可-愛生活 老師推薦,阿里云云棲社區組織翻譯。

文章原標題《Solutions for Skilltest Machine Learning : Revealed》,作者:Ankit Gupta 等人


初學者以為理解各個演算法就是王道。

在實際場景中很好的運用是更上一層樓的水平。針對現有的數據規模和質量,可利用的特徵體系,適配合適的模型,loss函數,正則,樣本去噪,特徵選擇,特徵迭代優化。。。這個過程需要足夠的實踐。

模型要跟數據適配。

模型要跟數據適配。

模型要跟數據適配。

機器學習其實是需要理論和實踐反覆反饋的過程。


現在市面上的大多數機器學習工程師 approx 調包師。

單純對演算法的掌握程度,我覺得衡量辦法如下:

  1. 能不能從數學角度理解機器學習演算法的工作原理以及理解的深淺
  2. 能不能自己快速實現一些基礎的演算法代碼
  3. 能不能改進現有演算法或設計出新的演算法,提升性能

不過,其實儘管很多人的1/2/3點做的不夠好,但事實上也能完成大多數應用場景的問題。實際公司里廣泛使用的演算法,大多也是簡單、快、實現容易的,多數通過調包就能完成。。。


機器學習工程師,初級的應該不需要有太深的了解,個人認為有一定的認識也就可以啦,機器學習演算法的完全掌握,應該是高級工程師,或者演算法工程師的職業範圍。

從廣義上來說,機器學習演算法主要有三種,監督式學習、非監督式學習、強化學習,常用的機器學習演算法名單就比較多了,線性回歸、邏輯回歸、決策樹、SVM、降維演算法。

個人認為,去衡量一個機器學習工程師對演算法的掌握程度,這個是很難衡量的,因為做這一行的,大多數人不擅言辭,有人擅言辭,能力卻很一般,有誇大成分存在,個人建議,還是應該,出一份機器學習面試題,然後再讓他們寫上對常用機器學習演算法的理解,請注意,一定是寫到紙上,這樣才是公正,並且合乎道理。

衡量之後,測評一下對數學掌握的程度,因為機器學習演算法,對數學的要求還是比較高的,所以說,一定要知道,學習機器學習需要具備怎樣的數學水平? - 人工智慧 多智時代


1 從頭到尾推導公式;

2 結合實際問題,對模型的理解。


必須手撕各種公式,各種演算法


哇哇第一次被瀉藥,獻上處女瀉藥答(羞射)機器學習演算法的掌握程度在我看來很大一部分是對演算法本身的原理理解和拓展,比如SVM,我們可以很簡單的調包來實現,但是從演算法原理上來講。怎樣優化SVM參數,包括KNN等演算法怎樣使演算法更合理,這是一個機器學習菜鳥和老手的區別,機器學習編程本來就是為了跑演算法,編程本身不重要,重要的是演算法的構造,現在很多paper都是研究演算法的我也時不時看,一個SVM可以拓展出不同的十幾種改進演算法,更不要說其他的演算法了,只有花時間研究很多paper借鑒別人的想法結合自己的應用實際,才能夠發現自的演算法


推薦閱讀:

如何對遊戲伺服器全服玩家進行排名?
為什麼大多數人寫程序都是調用標準庫或者自帶函數,而無法寫出像標準庫那樣的函數?
求十億內所有質數的和,怎麼做最快?
求效率的演算法?
一棟28層的寫字樓,有8台電梯,如何能讓運行效率達到最高?

TAG:演算法 | 機器學習 | 工程師 |