唯品會2018機器學習(A卷)

2021-08-15 05:30:30 字數 2216 閱讀 9434

前言

想強調的是,機器學習中依然注重基本資料結構,演算法的知識。

個人答案,覺得有問題的歡迎交流~

一、(資料結構與演算法)列舉至少2種排序演算法(如快排),並寫出實現**

這裡寫了冒泡和快速排序兩種。

//氣泡排序

public

void

bubblesort(int a)}}

}

這裡需要注意的是,a[[j]和a[j+1]互換時,要考慮j+1的下標溢位,所以最終j只能小於n+1。

//一趟快速排序

public

intpartsort(int i, int j ,int a)

// system.out.println("i:"+i+",j:"+j);

a[i]=r;

return i;

}//快速排序主體

public

void

quicksort(int i, int j ,int a)

二、(資料結構與演算法)現有n個數,找出其中第m大的數,這裡的n遠大於m。請說明演算法思路、複雜度

採用快速排序演算法思想,一次快速排序,返回值若為k,其實a[k]對應的位置是第k大的數,則若k>m, 則在左半部分繼續尋找第m大的數,否則在右半部分尋找第(m-k)大的數。

複雜度為o(n)。

**如下:

public

intfindmaxk(int i, int j, int a,int k)

三、(機器學習理論)請列舉生成模型與判別模型的區別

生成模型是通過資料學習聯合概率分布p(x,y),然後求出條件概率分布p(y|x),作為**的模型,即生成模型為:p(y|x)=p(x,y)/p(x)

生成模型的特點:生成模型可以還原聯合概率分布,而判別模型不行;生成模型的收斂速度更快,即當樣本容量增大時,生成模型能更快的收斂到真實模型;當存在隱變數時,只能用生成模型。

常見的生成模型有樸素貝葉斯,隱馬爾科夫鏈。

判別模型是通過資料直接學習判別函式y=f(x)或者條件概率作為**模型。

判別模型的特點:判別模型直接學習的還是判別函式或者條件概率分布,直接面對**,往往學習的準確率要高;判別模型由於直接學習條件概率或決策函式,可以對資料進行各種程度上的抽象/定義特徵並使用特徵,因此可以簡化學習問題。

常見的判別模型有svm,邏輯回歸等。

四、(機器學習理論)請列舉分類模型和回歸模型的區別

請參加我的一篇部落格。

五、(機器學習理論)什麼是欠擬合、過擬合?避免過擬合有哪些途徑?

欠擬合:對訓練資料擬合不夠,偏差較大,根本的原因是特徵維度過少,導致擬合的函式無法滿足訓練集,訓練誤差較大。

過擬合:對訓練資料過度擬合,方差較大,根本的原因則是特徵維度過多,導致擬合的函式完美的經過訓練集,但是對新資料的**結果則較差。

解決過擬合問題,則有3個途徑:

1.特徵選擇:減少特徵維度; 包括前向演算法,後向演算法以及filter method.

2.模型選擇:一般通過交叉驗證方法來避免過擬合。

3.正則化:裡面涉及到概率學派和貝葉斯學派的區別,但是其本質是類似與特徵選擇的,通過先驗概率,限制引數的取值,使得某些引數接近於0,則對應的特徵基本不起作用,起到降低模型複雜度的作用。

六、請列舉random forest和gbdt的區別

隨機森林:bagging演算法,對訓練資料進行抽樣,每次取不同的訓練資料進行決策樹的訓練,最終分類採用多數表決的方法。不同樹之間的訓練是並行的。

gbdt:boosting演算法,所有訓練資料都會一起放入模型中,而不會抽樣。通過調整樣本權重對模型進行修正得到下乙個模型,即序列方法,得到最終輸出。在gbdt中,下乙個模型擬合的不再是原始資料,而是梯度,以梯度去代替殘差值。

七、(機器學習理論)梯度下降法求解最優化問題的原理與步驟

假設目標函式為min l(x;a)

梯度下降的求解步驟就是不斷更新a,使得l下降,a的更新方法為:

a:=a-η*l對a的梯度。

其原理是,因為在數學中,乙個函式變化最快的方向便是其梯度方向,因為是最小化問題,所以我們使得a降低。

更具體的可以參見部落格。

2013 3 28 唯品會筆試題

唯品會筆試題 1.const關鍵字作用是什麼?static 關鍵字作用是什麼?2.先進先出 後進先出的典型資料結構分別是什麼?用你熟悉的語言編寫其中乙個資料結構。3.任選一題 1 協議狀態碼 200 302 404 500分別代表什麼?2 tcp協議和 udp協議的區別是什麼?各舉乙個典型的應用場景...

selenium例項 唯品會爬取

import json from selenium import webdriver from time import sleep from bs4 import beautifulsoup import urllib.parse class weispider object def init se...

唯品會訴爭唯品會商標終審敗訴,因與引證商標構成近似

techwww.cppcns.comweb 企查查app顯示,近日,唯品會因商標申請駁回複審行政糾紛一案,不jovndivte服程式設計客棧判決,提起上訴。企查查顯示,相關二審行www.cppcns.com政判決書近日公開,法院查明唯品會公司註冊的第25類 唯品會 商標不具有區別於各引證商標的顯著性...