算法基礎(chǔ)

1、數(shù)據(jù)量比較大的時(shí)候,svm和lr哪個(gè)更快?

svm適用于相對(duì)稀疏的數(shù)據(jù),所以xgb的效果比svm要好。面試官也說(shuō)嗯,確實(shí)樹模型適用于稠密數(shù)據(jù)。
lr快
smo算法每次選一對(duì)乘子優(yōu)化,固定其他乘子,是一個(gè)二次規(guī)劃問(wèn)題,選擇乘子也是啟發(fā)式算法,這一步也導(dǎo)致了整個(gè)凸優(yōu)化的svm尋解過(guò)程了變成了近凸優(yōu)化,在乘子的選擇上由于初始不知道那些是支持向量,所以乘子不好選擇(啟發(fā)式方法選的是違背kkt條件最大的一對(duì)點(diǎn)),實(shí)際上你還得去訓(xùn)練那些非支持向量的數(shù)據(jù),速度提不起來(lái)。
svm用都用了,不給整個(gè)核函數(shù)嗎?這又是一步較為耗時(shí)的操作。

lr就不同了,同樣是凸優(yōu)化的模型,lr只有一個(gè)線性組合和sigmoid,梯度下降時(shí),每個(gè)樣本訓(xùn)練復(fù)雜度也就和樣本特征維數(shù)有關(guān),復(fù)雜度是線性的。最為關(guān)鍵的是,lr可以做到樣本的并行和w求解的并行。矩陣運(yùn)算是可以拆解的,AB看作A對(duì)B的行操作,也可以看作B對(duì)A的列操作,這樣矩陣的運(yùn)算就可以分解為獨(dú)立的向量操作,輕松實(shí)現(xiàn)并行化。另外,lr也可以對(duì)數(shù)據(jù)進(jìn)行切分后并行化操作,但主要應(yīng)該還是梯度下降的并行,lr的實(shí)際訓(xùn)練速度要比看起來(lái)快很多。

2.lr為什么不用mse

https://blog.csdn.net/liuweiyuxiang/article/details/100812623
lr用mse時(shí)求導(dǎo)會(huì)出現(xiàn)sigmoid的導(dǎo)數(shù),可能導(dǎo)致模型收斂很慢;使用logloss的時(shí)候,不會(huì)出現(xiàn)sigmoid的導(dǎo)數(shù)

3.梯度角度解釋l1

l1梯度向0跑,右邊-1左邊+1,兩邊都朝著0收斂,但是l1梯度絕對(duì)值一直是1,所以容易收斂到0不動(dòng),l2越靠近0梯度絕對(duì)值越小,容易到0附近不動(dòng)。

14 ID3\C4.5等基本樹 是二叉樹還是多叉樹 被切過(guò)的特征還會(huì)再切嗎

離散特征(離散數(shù)量>2)是多叉分類,連續(xù)是二叉分裂,連續(xù)可以在切,離散不可以(當(dāng)時(shí)回答的是可以再切,被提示后意識(shí)到不可再切,說(shuō)了自己的matlab實(shí)現(xiàn),先做集合,遍歷特征,保存最大的信息增益位置,然后對(duì)特征切分,切分后把這個(gè)特征從集合中刪掉,所以離散特征切完就不在切了,還好反應(yīng)過(guò)來(lái)了,連續(xù)性特征可以再切,詳情可以去看看別人的ID3樹和其他樹的源代碼)

15 BN是什么?BN論文對(duì)BN抑制過(guò)擬合的解釋:

1、預(yù)白化,訓(xùn)練快,sigmoid兩端飽和梯度小,BN可以縮放到線性區(qū)2、分布學(xué)習(xí),NN深了之后每一層分布都會(huì)偏移,BN壓縮分布使得各層分布趨近于一致3、BN可以看做一定程度的數(shù)據(jù)擴(kuò)充,數(shù)據(jù)做了抖動(dòng)處理。注意BN的訓(xùn)練過(guò)程要記得,當(dāng)前批次歸一化,預(yù)測(cè)的時(shí)候是全部數(shù)據(jù),而且BN層有兩個(gè)超參數(shù)要優(yōu)化)

在訓(xùn)練中,BN的使用使得一個(gè)mini-batch中的所有樣本都被關(guān)聯(lián)在了一起,因此網(wǎng)絡(luò)不會(huì)從某一個(gè)訓(xùn)練樣本中生成確定的結(jié)果。
這句話什么意思呢?意思就是同樣一個(gè)樣本的輸出不再僅僅取決于樣本本身,也取決于跟這個(gè)樣本屬于同一個(gè)mini-batch的其它樣本。同一個(gè)樣本跟不同的樣本組成一個(gè)mini-batch,它們的輸出是不同的(僅限于訓(xùn)練階段,在inference階段是沒(méi)有這種情況的)。我把這個(gè)理解成一種數(shù)據(jù)增強(qiáng):同樣一個(gè)樣本在超平面上被拉扯,每次拉扯的方向的大小均有不同。不同于數(shù)據(jù)增強(qiáng)的是,這種拉扯是貫穿數(shù)據(jù)流過(guò)神經(jīng)網(wǎng)絡(luò)的整個(gè)過(guò)程的,意味著神經(jīng)網(wǎng)絡(luò)每一層的輸入都被數(shù)據(jù)增強(qiáng)處理了。

16 GBDT和RF哪個(gè)深

RF深。說(shuō)了boost和bagging的思想。boost使用低方差學(xué)習(xí)器去擬合偏差,所以XBG和LGB有樹深的參數(shù)設(shè)置,RF是擬合方差,對(duì)樣本切對(duì)特征切,構(gòu)造多樣性樣本集合,每棵樹甚至不剪枝。

17 XGB特征重要性程度是怎么判斷的?

gain 增益 意味著相應(yīng)的特征對(duì)通過(guò)對(duì)模型中的每個(gè)樹采取每個(gè)特征的貢獻(xiàn)而計(jì)算出的模型的相對(duì)貢獻(xiàn)。與其他特征相比,此度量值的較高值意味著它對(duì)于生成預(yù)測(cè)更為重要。
cover覆蓋度量 指的是與此功能相關(guān)的觀測(cè)的相對(duì)數(shù)量。例如,如果您有100個(gè)觀察值,4個(gè)特征和3棵樹,并且假設(shè)特征1分別用于決策樹1,樹2和樹3中10個(gè),5個(gè)和2個(gè)觀察值的葉結(jié)點(diǎn);那么該度量將計(jì)算此功能的覆蓋范圍為10+5+2 = 17個(gè)觀測(cè)值。這將針對(duì)所有決策樹結(jié)點(diǎn)進(jìn)行計(jì)算,并將17個(gè)結(jié)點(diǎn)占總的百分比表示所有功能的覆蓋指標(biāo)。
freq 頻率(頻率) 是表示特定特征在模型樹中發(fā)生的相對(duì)次數(shù)的百分比。

18 XGB很容易理解它的回歸和二分類,如何理解多分類呢?

談笑中度過(guò),一開始回答的label encode ,用onehot+softmax,但是每棵樹如何是擬合softmax前一步呢。這個(gè)我確實(shí)不知道,面試官提示我說(shuō)三分類,構(gòu)造100棵樹還是300棵,我就意識(shí)到了,回答原以為是100棵。
面試官說(shuō)構(gòu)造三百棵樹,擬合三分類,再softmax。
(onehot之后,輸入標(biāo)簽是一個(gè)向量,對(duì)向量中每一個(gè)預(yù)測(cè)點(diǎn)集成一群樹)

19 造等概率1-10,分析調(diào)用1-7的次數(shù)期望

7進(jìn)制,調(diào)用兩次產(chǎn)生0-48,然后截掉40和40以上的再//4+1

`def` `rand7()`

`def` `rand10():`

`x ``=` `7``*``(rand7()``-``1``)``+``rand7()``-``1`

`while` `x>``=``40``:`

`x ``=` `7``*``(rand7()``-``1``)``+``rand7()``-``1`

`return` `1``+``x``/``/``4`

期望不好算,是個(gè)數(shù)等比列求和,然后我就口算的近似值2.5n

20 如何衡量用戶對(duì)搜索結(jié)果的滿意程度?**

TCP連接計(jì)時(shí),根據(jù)場(chǎng)景過(guò)濾計(jì)時(shí)噪聲,比如視頻場(chǎng)景用視頻長(zhǎng)度的百分位計(jì)時(shí),秒退的有效性等等。

如何解決新搜索結(jié)果的推送?
新搜索結(jié)果肯定歷史推送為0,沒(méi)有任何參考,但我們不知道他質(zhì)量怎么樣。于是把他隨機(jī)推送一小部分用戶,在推廣。再推廣時(shí)注意刷點(diǎn)擊率現(xiàn)象,過(guò)濾一下。

21 BN、Dropout

(Dropout可以作為訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的一種trick供選擇。在每個(gè)訓(xùn)練批次中,通過(guò)忽略一半的特征檢測(cè)器(讓一半的隱層節(jié)點(diǎn)值為0,當(dāng)然這個(gè)“一半”是超參數(shù),自己設(shè)),可以明顯地減少過(guò)擬合現(xiàn)象。這種方式可以減少特征檢測(cè)器(隱層節(jié)點(diǎn))間的相互作用,檢測(cè)器相互作用是指某些檢測(cè)器依賴其他檢測(cè)器才能發(fā)揮作用。
Dropout說(shuō)的簡(jiǎn)單一點(diǎn)就是:我們?cè)谇跋騻鞑サ臅r(shí)候,讓某個(gè)神經(jīng)元的激活值以一定的概率p停止工作,這樣可以使模型泛化性更強(qiáng),因?yàn)樗粫?huì)太依賴某些局部的特征。
其實(shí)就是個(gè)Bagging策略,構(gòu)造子網(wǎng)組合。

Dropout為什么預(yù)防過(guò)擬合?
從bagging的角度答的,NN是偏差小方差大的學(xué)習(xí)器,適合用bagging,構(gòu)造子網(wǎng)絡(luò)在預(yù)測(cè)的時(shí)候組合,相當(dāng)于構(gòu)造了學(xué)習(xí)的多樣性,實(shí)現(xiàn)了bagging。

22 為什么不用先用LR呀

用LR做做二分類,做做stack還挺好的,但LR總感覺(jué)表達(dá)能力不夠,特征比較粗的話效果可能一般。
(后來(lái)覺(jué)得LR還挺厲害的,詳情可以見總結(jié)的一些基礎(chǔ)機(jī)器學(xué)習(xí)知識(shí)那里,LR可解釋性、速度都很快,還是凸優(yōu)化,用來(lái)衡量特征做得好不好還是可以的)

23 連續(xù)性特征也能交叉啊為什么不交叉**

離散化就是數(shù)據(jù)分桶,我這里按百分位分桶,百分位分桶比較均勻,百分位是數(shù)據(jù)排序的百分位,而不是區(qū)間的百分位。
連續(xù)性特征交叉,連續(xù)性特征映射成離散特征后,可以和連續(xù)性特征一起送到嵌入層里。

25 L1、L2不同?L1為什么能稀疏?

從數(shù)學(xué)分布講了,一個(gè)是拉普拉斯分布 一個(gè)是高斯分布;講了圖解為什么L1能稀疏,一個(gè)圈一個(gè)菱形,容易交在軸上。工程上講了,L1的近似求導(dǎo),區(qū)間內(nèi)0區(qū)間外優(yōu)化。然后L2是直接求導(dǎo)比較簡(jiǎn)單。

26 哪些學(xué)習(xí)器是凸優(yōu)的呀?

LR sigmoid logloss 凸優(yōu) 。線性回歸,最小二乘凸優(yōu)。SVM凸優(yōu)。NN肯定不凸優(yōu),因?yàn)橥諗康桨包c(diǎn)。PCA無(wú)數(shù)學(xué)解,但是利用特征值去做反而得到最優(yōu)解。
(注意sigmoid+平方損失不是凸優(yōu)化)

27 特征重要性怎么做,例如特征組合和刪除

特征組合用onehot、交叉、EMBEDING。組合的話要看實(shí)際分布,講了自己構(gòu)造過(guò)的一個(gè)和標(biāo)簽有線性關(guān)系的組合,說(shuō)自己用的是遍歷的方法,用兩兩數(shù)學(xué)關(guān)系構(gòu)造新特征,看和標(biāo)簽的線性關(guān)系。

28 這個(gè)Embedding映射了隱向量,你覺(jué)得是CNN交叉好呢 還是隱向量好呢

我的回答偏向于場(chǎng)景,編碼領(lǐng)域內(nèi)的一個(gè)特點(diǎn):只有局部相關(guān),時(shí)不變。所以用CNN,做全局相關(guān)的Embedding反而不好。推薦里面特征離散化后稀疏,而且特征間本身可能具有高階交互信息,所以映射成隱向量效果會(huì)較好,如果是推薦,我建議用隱向量而不是CNN,其實(shí)這是由場(chǎng)景決定的,是數(shù)據(jù)的特點(diǎn)決定選用什么學(xué)習(xí)器,使用什么網(wǎng)絡(luò)。(我還介紹了圖像為什么ResNet更好,但是編碼里我的兩層極限調(diào)參網(wǎng)絡(luò)性能超過(guò)了殘差網(wǎng)絡(luò),其實(shí)都是場(chǎng)景決定的)

33 視頻二分類,算精準(zhǔn)率,召回率,準(zhǔn)確率。**

[準(zhǔn)確率(accuracy),精確率(Precision),召回率(Recall)和綜合評(píng)價(jià)指標(biāo)(F1-Measure)
召回率太重要了,因?yàn)檫@種我們可以虛警但是不能漏警(猜猜檢測(cè)的啥),所以精確率不高可以接受。

如何提高精準(zhǔn)率呢?

調(diào)分類閾值+大,但是召回率降低就回退。

如果不改動(dòng)現(xiàn)有模型呢?

我說(shuō)一般我會(huì)用二分類trick,但是這種不知道在二分類行不行,應(yīng)該不行吧,不如人工查。

面試官反饋說(shuō)人工肯定要查的,(我已經(jīng)意識(shí)到自己的上一句話不妥了,但是現(xiàn)在是對(duì)方的回合),面試官說(shuō)了人工查的重要性和必要性,然后說(shuō)這一步提高精準(zhǔn)率就是為了減少人力,然人從大量分類錯(cuò)的樣本解放出來(lái),可以用二分類,對(duì)分錯(cuò)的樣本和負(fù)樣本再二分類。我表示同意,說(shuō)這個(gè)Trick不錯(cuò)。面試說(shuō),對(duì)啊,不就是個(gè)Trick么。

36 svm的為什么要 轉(zhuǎn)化為對(duì)偶問(wèn)題求解

主要是降低問(wèn)題的復(fù)雜度,設(shè)想f(x,y)有兩個(gè)變量,拉個(gè)朗日函數(shù)L=f(x,y)-p*h(x,y)有三個(gè)變量,你求偏導(dǎo)數(shù)要之后,要求解一個(gè)三元(可能是高次)方程,問(wèn)題比較復(fù)雜,轉(zhuǎn)化為對(duì)偶問(wèn)題后,你只需要求解一個(gè)二元方程,和一個(gè)一元方程,使復(fù)雜問(wèn)題簡(jiǎn)單化。
svm的目標(biāo)函數(shù)是求解一個(gè)凸優(yōu)化問(wèn)題,在凸優(yōu)化中,kkt點(diǎn),局部極小點(diǎn),全局極小點(diǎn)三者等價(jià)

核函數(shù)怎么選

核技巧我們知道,其目的是希望通過(guò)將輸入空間內(nèi)線性不可分的數(shù)據(jù)映射到一個(gè)高緯的特征空間內(nèi)使得數(shù)據(jù)在特征空間內(nèi)是可分的
線性核,主要用于線性可分的情況
多項(xiàng)式核函數(shù)可以實(shí)現(xiàn)將低維的輸入空間映射到高緯的特征空間,但是多項(xiàng)式核函數(shù)的參數(shù)多,當(dāng)多項(xiàng)式的階數(shù)比較高的時(shí)候,核矩陣的元素值將趨于無(wú)窮大或者無(wú)窮小,計(jì)算復(fù)雜度會(huì)大到無(wú)法計(jì)算。
高斯徑向基函數(shù)是一種局部性強(qiáng)的核函數(shù),其可以將一個(gè)樣本映射到一個(gè)更高維的空間內(nèi),該核函數(shù)是應(yīng)用最廣的一個(gè),無(wú)論大樣本還是小樣本都有比較好的性能,而且其相對(duì)于多項(xiàng)式核函數(shù)參數(shù)要少,因此大多數(shù)情況下在不知道用什么核函數(shù)的時(shí)候,優(yōu)先使用高斯核函數(shù)。
在選用核函數(shù)的時(shí)候,如果我們對(duì)我們的數(shù)據(jù)有一定的先驗(yàn)知識(shí),就利用先驗(yàn)來(lái)選擇符合數(shù)據(jù)分布的核函數(shù);如果不知道的話,通常使用交叉驗(yàn)證的方法,來(lái)試用不同的核函數(shù),誤差最下的即為效果最好的核函數(shù),或者也可以將多個(gè)核函數(shù)結(jié)合起來(lái),形成混合核函數(shù)。在吳恩達(dá)的課上,也曾經(jīng)給出過(guò)一系列的選擇核函數(shù)的方法:
如果特征的數(shù)量大到和樣本數(shù)量差不多,則選用LR或者線性核的SVM;
如果特征的數(shù)量小,樣本的數(shù)量正常,則選用SVM+高斯核函數(shù);
如果特征的數(shù)量小,而樣本的數(shù)量很大,則需要手工添加一些特征從而變成第一種情況

核函數(shù)映射到高維空間,那么計(jì)算量會(huì)不會(huì)顯著增大?

不會(huì),核心計(jì)算還是在低維空間算內(nèi)積

SVM跟AdaBoost有什么聯(lián)系

都是分類
SVM僅取決于支持向量,那么AdaBoost呢?AdaBoost更關(guān)注之前被分錯(cuò)的樣本,所以它們的共同點(diǎn)在于都不是一視同仁的看待所有樣本。

PCA推導(dǎo)

SVD 主要作用

A=UΣV^T F范數(shù)下的最優(yōu)近似

特征選擇方法

特征是否發(fā)散:如果一個(gè)特征不發(fā)散,例如方差接近于0,也就是說(shuō)樣本在這個(gè)特征上基本上沒(méi)有差異,這個(gè)特征對(duì)于樣本的區(qū)分并沒(méi)有什么用。
方差選擇法
  使用方差選擇法,先要計(jì)算各個(gè)特征的方差,然后根據(jù)閾值,選擇方差大于閾值的特征
相關(guān)系數(shù)法
  使用相關(guān)系數(shù)法,先要計(jì)算各個(gè)特征對(duì)目標(biāo)值的相關(guān)系數(shù)以及相關(guān)系數(shù)person相關(guān)系數(shù)
卡方檢驗(yàn)
  經(jīng)典的卡方檢驗(yàn)是檢驗(yàn)定性自變量對(duì)定性因變量的相關(guān)性,這個(gè)統(tǒng)計(jì)量的含義簡(jiǎn)而言之就是自變量對(duì)因變量的相關(guān)性
互信息法
  經(jīng)典的互信息也是評(píng)價(jià)定性自變量對(duì)定性因變量的相關(guān)性的
樹模型輸出特征重要性

特征共線性問(wèn)題

產(chǎn)生原因:
(1)沒(méi)有足夠多的樣本數(shù)據(jù)
(2)選取的樣本之間本身就客觀存在共線性關(guān)系
(3)其他因素導(dǎo)致:數(shù)據(jù)采集所采用的方法,模型的設(shè)定,一個(gè)過(guò)度決定的模型

LR共線性:

LR模型中特征的共線性不會(huì)影響模型的最優(yōu)解,但是會(huì)影響系數(shù)的穩(wěn)定性。
所以LR模型中特征的共線性不會(huì)影響模型的最優(yōu)解,但是會(huì)使得系數(shù)不穩(wěn)定,從而解釋性變差。

為什么要?jiǎng)h除共線性特征

  • 提高模型的可解釋性
  • 提高模型的訓(xùn)練速度

特征權(quán)重的絕對(duì)值可以用來(lái)衡量特征的重要性嗎

不一定,首先特征可能沒(méi)有歸一化,系數(shù)收到量級(jí)的影響,(1米=1cm * 100)
其次,特征間可能存在共線性,導(dǎo)致特征系數(shù)不穩(wěn)定,可解釋性差。

為什么特征離散化

下面答案有些不是LR進(jìn)行離散化特有的原因,而是離散化本身比較general的原因
離散特征可以one-hot, 而稀疏向量?jī)?nèi)積運(yùn)算速度快,結(jié)果易存儲(chǔ)
離散后數(shù)據(jù)魯棒性強(qiáng),不會(huì)因?yàn)閿?shù)據(jù)發(fā)生一點(diǎn)小的變動(dòng)而表現(xiàn)出完全不同的性質(zhì),使模型更穩(wěn)定
離散后可以進(jìn)行特征交叉,引入非線性特征
增強(qiáng)模型的表達(dá)能力,離散化后,原來(lái)的一個(gè)特征變成N個(gè)特征,加大了模型的擬合能力
特征離散后相當(dāng)于簡(jiǎn)化了特征,一定程度上減輕了過(guò)擬合

最小二乘法

最小二乘使所有點(diǎn)到曲線的方差最小.利用最小二乘對(duì)掃描線上的所有數(shù)據(jù)點(diǎn)進(jìn)行擬合,得到一條樣條曲線,然后逐點(diǎn)計(jì)算每一個(gè)點(diǎn)Pi到樣條曲線的歐拉距離ei(即點(diǎn)到曲線的最短距離),ε是距離的閾值,事先給定,如果ei≥ε,則將該點(diǎn)判斷為噪點(diǎn).
該方法最重要的事先擬合樣條曲線。
確定曲線類型的方法:根據(jù)已知數(shù)據(jù)點(diǎn)類型初步確定曲線類型,經(jīng)驗(yàn)觀察初步嘗試擬合函數(shù)類型.
曲線類型選擇:直線,二次曲線,三次曲線,對(duì)數(shù)函數(shù)擬合,冪函數(shù)擬合,直至方差最小。
直線:f(X1) = aX1 + b;
二次曲線:f(X1) = aX12 + bX1 + c;
對(duì)數(shù)函數(shù):f(X1) = a + b log(X1);
冪函數(shù): f(X1) = aX1b


image.png

生成式與判別式

生成式模型學(xué)習(xí)到的是數(shù)據(jù)的聯(lián)合概率分布P(X, Y),進(jìn)而根據(jù)聯(lián)合概率分布與邊緣分布的關(guān)系求出條件概率分布.樸素貝葉斯法、隱馬爾科夫模型、混合高斯模型
判別式模型是根據(jù)數(shù)據(jù)直接學(xué)習(xí)出一個(gè)決策函數(shù)f(X)或是一個(gè)條件概率分布P(Y/X)。判別方法關(guān)心的是對(duì)給定的輸入X,應(yīng)該預(yù)測(cè)什么樣的輸出Y。
典型的判別式模型:
KNN,感知機(jī),決策樹,邏輯回歸,最大熵模型,SVM,提升方法,條件隨機(jī)場(chǎng),神經(jīng)網(wǎng)絡(luò)

KNN算法模型的復(fù)雜度主要是體現(xiàn)在哪兒?什么情況下會(huì)造成過(guò)擬合?

k臨近算法的模型復(fù)雜度體現(xiàn)在k值上;k值較小容易造成過(guò)擬合,k值較大容易造成欠擬合。
KNN時(shí)間復(fù)雜度O(N*k)k為特征數(shù)目
時(shí)間復(fù)雜度優(yōu)化,使用kdtree,KD樹的特性適合使用歐氏距離。

KDTree
基本思想是,若A點(diǎn)距離B點(diǎn)非常遠(yuǎn),B點(diǎn)距離C點(diǎn)非常近, 可知A點(diǎn)與C點(diǎn)很遙遠(yuǎn),不需要明確計(jì)算它們的距離。 通過(guò)這樣的方式,近鄰搜索的計(jì)算成本可以降低為O[DNlog(N)]或更低。 這是對(duì)于暴力搜索在大樣本數(shù)N中表現(xiàn)的顯著改善。KD 樹的構(gòu)造非??欤瑢?duì)于低維度 (D<20) 近鄰搜索也非??? 當(dāng)D增長(zhǎng)到很大時(shí),效率變低: 這就是所謂的 “維度災(zāi)難” 的一種體現(xiàn)。
KD 樹是一個(gè)二叉樹結(jié)構(gòu),它沿著數(shù)據(jù)軸遞歸地劃分參數(shù)空間,將其劃分為嵌入數(shù)據(jù)點(diǎn)的嵌套的各向異性區(qū)域。 KD 樹的構(gòu)造非??欤阂?yàn)橹恍柩財(cái)?shù)據(jù)軸執(zhí)行分區(qū), 無(wú)需計(jì)算D-dimensional 距離。 一旦構(gòu)建完成, 查詢點(diǎn)的最近鄰距離計(jì)算復(fù)雜度僅為O[log(N)]。 雖然 KD 樹的方法對(duì)于低維度 (D<20) 近鄰搜索非??? 當(dāng)D增長(zhǎng)到很大時(shí), 效率變低。

KNN做回歸

取平均值,中位數(shù),最大值

SVM和神經(jīng)網(wǎng)絡(luò)

線性SVM的計(jì)算部分和一個(gè)單層神經(jīng)網(wǎng)絡(luò)一樣,就是一個(gè)矩陣乘積
處理非線性數(shù)據(jù),SVM和神經(jīng)網(wǎng)絡(luò)走了兩條不同的道路:神經(jīng)網(wǎng)絡(luò)通過(guò)多個(gè)隱層的方法來(lái)實(shí)現(xiàn)非線性的函數(shù),有一些理論支持(比如說(shuō)帶隱層的神經(jīng)網(wǎng)絡(luò)可以模擬任何函數(shù)),但是目前而言還不是非常完備;SVM則采用了kernel trick的方法,這個(gè)在理論上面比較完備(RKHS,簡(jiǎn)單地說(shuō)就是一個(gè)泛函的線性空間)。兩者各有好壞,神經(jīng)網(wǎng)絡(luò)最近的好處是網(wǎng)絡(luò)設(shè)計(jì)可以很靈活,但是老被人說(shuō)跳大神;SVM的理論的確漂亮,但是kernel設(shè)計(jì)不是那么容易

SVM會(huì)過(guò)擬合嗎

由于SVM是一個(gè)凸優(yōu)化問(wèn)題,所以求得的解一定是全局最優(yōu)而不是局部最優(yōu)。
在完全線性可分的數(shù)據(jù)集下,支持向量機(jī)沒(méi)有過(guò)擬合問(wèn)題,因?yàn)樗慕馐俏ㄒ坏?。而在非線性可分的情況下,雖然SVM的目標(biāo)函數(shù)自帶正則項(xiàng),但是由于允許誤分類的存在引入了核函數(shù),SVM仍會(huì)有過(guò)擬合的問(wèn)題:
實(shí)際中應(yīng)用的SVM模型都是核函數(shù)+軟間隔的支持向量機(jī),那么,有以下原因?qū)е耂VM過(guò)擬合:
1)選擇的核函數(shù)過(guò)于powerful
2)要求的間隔過(guò)大,即在軟間隔支持向量機(jī)中C的參數(shù)過(guò)大時(shí),表示比較重視間隔,堅(jiān)持要數(shù)據(jù)完全分離,當(dāng)C趨于無(wú)窮大時(shí),相當(dāng)于硬間隔SVM

  1. 異常點(diǎn)(通過(guò)松弛變量的svm可以解決這個(gè))

L1L2為什么可以防止過(guò)擬合

給參數(shù)先驗(yàn)分布降低模型能力
L2正則引入高斯先驗(yàn),會(huì)讓w變小
L1正則引入拉普拉斯先驗(yàn),拉普拉斯先驗(yàn)使參數(shù)為0的可能性極大。當(dāng)w為正時(shí),更新后的w變小。當(dāng)w為負(fù)時(shí),更新后的w變大——因此它的效果就是讓w往0靠,使網(wǎng)絡(luò)中的權(quán)重盡可能為0

MSE 交叉熵公式

MSE

交叉熵

用一些特征判斷用戶會(huì)不會(huì)點(diǎn)擊某商品,用cart好還是c4.5好

考慮到類別不平衡和連續(xù)值的特征,用cart會(huì)比較好

LR和SVM區(qū)別

同:
第一,LR和SVM都是分類算法。
第二,如果不考慮核函數(shù),LR和SVM都是線性分類算法,也就是說(shuō)他們的分類決策面都是線性的。
第三,LR和SVM都是監(jiān)督學(xué)習(xí)算法。
第四,LR和SVM都是判別模型。

異:
LR是參數(shù)模型,SVM是非參數(shù)模型
第一,本質(zhì)上是其loss function不同
交叉熵?fù)p失和hinge損失
不同的loss function代表了不同的假設(shè)前提,也就代表了不同的分類原理,也就代表了一切!??!簡(jiǎn)單來(lái)說(shuō),?邏輯回歸極大似然估計(jì)的方法估計(jì)出參數(shù)的值;支持向量機(jī)?基于幾何間隔最大化原理
第二,支持向量機(jī)只考慮局部的邊界線附近的點(diǎn),而邏輯回歸考慮全局(遠(yuǎn)離的點(diǎn)對(duì)邊界線的確定也起作用)。
影響SVM決策面的樣本點(diǎn)只有少數(shù)的結(jié)構(gòu)支持向量,當(dāng)在支持向量外添加或減少任何樣本點(diǎn)對(duì)分類決策面沒(méi)有任何影響;而在LR中,每個(gè)樣本點(diǎn)都會(huì)影響決策面的結(jié)果。線性SVM不直接依賴于數(shù)據(jù)分布,分類平面不受一類點(diǎn)影響;LR則受所有數(shù)據(jù)點(diǎn)的影響,如果數(shù)據(jù)不同類別strongly unbalance,一般需要先對(duì)數(shù)據(jù)做balancing。?
第三,在解決非線性問(wèn)題時(shí),支持向量機(jī)采用核函數(shù)的機(jī)制,而LR通常不采用核函數(shù)的方法。
?這個(gè)問(wèn)題理解起來(lái)非常簡(jiǎn)單。分類模型的結(jié)果就是計(jì)算決策面,模型訓(xùn)練的過(guò)程就是決策面的計(jì)算過(guò)程。在計(jì)算決策面時(shí),SVM算法里只有少數(shù)幾個(gè)代表支持向量的樣本參與了計(jì)算,也就是只有少數(shù)幾個(gè)樣本需要參與核計(jì)算(即kernal machine解的系數(shù)是稀疏的)。然而,LR算法里,每個(gè)樣本點(diǎn)都必須參與決策面的計(jì)算過(guò)程,也就是說(shuō),假設(shè)我們?cè)贚R里也運(yùn)用核函數(shù)的原理,那么每個(gè)樣本點(diǎn)都必須參與核計(jì)算,這帶來(lái)的計(jì)算復(fù)雜度是相當(dāng)高的。所以,在具體應(yīng)用時(shí),LR很少運(yùn)用核函數(shù)機(jī)制。?
第四,?線性SVM依賴數(shù)據(jù)表達(dá)的距離測(cè)度,所以需要對(duì)數(shù)據(jù)先做normalization,LR不受其影響。
第五,SVM的損失函數(shù)就自帶正則!?。。〒p失函數(shù)中的1/2||w||^2項(xiàng)),這就是為什么SVM是結(jié)構(gòu)風(fēng)險(xiǎn)最小化算法的原因?。。《鳯R必須另外在損失函數(shù)上添加正則項(xiàng)?。?!**
以前一直不理解為什么SVM叫做結(jié)構(gòu)風(fēng)險(xiǎn)最小化算法,所謂結(jié)構(gòu)風(fēng)險(xiǎn)最小化,意思就是在訓(xùn)練誤差和模型復(fù)雜度之間尋求平衡,防止過(guò)擬合,從而達(dá)到真實(shí)誤差的最小化。未達(dá)到結(jié)構(gòu)風(fēng)險(xiǎn)最小化的目的,最常用的方法就是添加正則項(xiàng)。

什么時(shí)候用svm

如果特征的數(shù)量大到和樣本數(shù)量差不多,則選用LR或者線性核的SVM;
如果特征的數(shù)量小,樣本的數(shù)量正常,則選用SVM+高斯核函數(shù);
如果特征的數(shù)量小,而樣本的數(shù)量很大,則需要手工添加一些特征從而變成第一種情況

stacking和blending區(qū)別

stacking是一種分層模型集成框架。以兩層為例,第一層由多個(gè)基學(xué)習(xí)器組成,其輸入為原始訓(xùn)練集,第二層的模型則是以第一層基學(xué)習(xí)器的輸出作為特征加入訓(xùn)練集進(jìn)行再訓(xùn)練,從而得到完整的stacking模型。


image

以5折劃分為例,我們將原始訓(xùn)練集分為5折,分別記為fold1、fold2、fold3、fold4和fold5。此時(shí)我們使用fold2-fold5的數(shù)據(jù)來(lái)訓(xùn)練基模型1,并對(duì)fold1進(jìn)行預(yù)測(cè),該預(yù)測(cè)值即作為基模型1對(duì)fold1生成的元特征;同樣地,使用fold1、fold3-fold5的數(shù)據(jù)來(lái)訓(xùn)練基模型1,并對(duì)fold2進(jìn)行預(yù)測(cè),該預(yù)測(cè)值即作為基模型1對(duì)fold2生成的元特征;以此類推,得到基模型1對(duì)整個(gè)原始訓(xùn)練集生成的元特征。同樣地,對(duì)其他基模型也采用相同的方法生成元特征,從而構(gòu)成用于第二層模型(下記為元模型,meta model)訓(xùn)練的完整元特征集。對(duì)于測(cè)試集,我們可以在每次基模型訓(xùn)練好時(shí)預(yù)測(cè),再將預(yù)測(cè)值做均值處理;也可以將基模型擬合全部的訓(xùn)練集之后再對(duì)測(cè)試集進(jìn)行預(yù)測(cè)。
需要注意的是,在生成第二層特征的時(shí)候,各個(gè)基模型要采用相同的Kfold,這樣得到的元特征的每一折(對(duì)應(yīng)于之前的K折劃分)都將不會(huì)泄露進(jìn)該折數(shù)據(jù)的目標(biāo)值信息 ,從而盡可能的降低過(guò)擬合的風(fēng)險(xiǎn)。雖然如此,實(shí)際上我們得到的元特征還是存在一定程度上的信息泄露,比如我們?cè)陬A(yù)測(cè)第二折的時(shí)候,是利用了第一折的目標(biāo)值信息用于訓(xùn)練基模型的,也就是說(shuō)第一折的目標(biāo)值信息雜糅在對(duì)第二折進(jìn)行預(yù)測(cè)的基模型里。但是,實(shí)踐中,這種程度的信息泄露所造成的過(guò)擬合程度很小。

Blending與Stacking大致相同,只是Blending的主要區(qū)別在于訓(xùn)練集不是通過(guò)K-Fold的CV策略來(lái)獲得預(yù)測(cè)值從而生成第二階段模型的特征,而是建立一個(gè)Holdout集,例如10%的訓(xùn)練數(shù)據(jù),第二階段的stacker模型就基于第一階段模型對(duì)這10%訓(xùn)練數(shù)據(jù)的預(yù)測(cè)值進(jìn)行擬合。說(shuō)白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV。
Blending的優(yōu)點(diǎn)在于:
1.比stacking簡(jiǎn)單(因?yàn)椴挥眠M(jìn)行k次的交叉驗(yàn)證來(lái)獲得stacker feature)
2.避開了一個(gè)信息泄露問(wèn)題:generlizers和stacker使用了不一樣的數(shù)據(jù)集

為什么有的模型需要?dú)w一化,有的不需要?

1)歸一化后加快了梯度下降求最優(yōu)解的速度;
2)歸一化有可能提高精度。
概率模型(樹形模型)不需要?dú)w一化,因?yàn)樗鼈儾魂P(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率,如決策樹、RF。而像Adaboost、SVM、LR(帶正則項(xiàng))、Knn、KMeans之類的最優(yōu)化問(wèn)題就需要?dú)w一化?;诰嚯x的都需要?dú)w一化

常見損失函數(shù)

1 01損失
2 絕對(duì)值損失
3 平方損失
4 對(duì)數(shù)損失 經(jīng)典的對(duì)數(shù)損失函數(shù)包括entropy和softmax
5 指數(shù)損失
6 合頁(yè)損失 主要用在svm中

常見優(yōu)化算法

SGD BGD moumentum adgrad adam

recall precision

precision:表征分類器的分類效果(查準(zhǔn)效果)
recall:表征某個(gè)類的召回(查全)效果
f1值:即用來(lái)衡量precision和recall的值,它是這個(gè)兩個(gè)值的調(diào)和均值 f1=p*r/(p+r)

xgboost為什么用泰勒展開,是有放回選擇特征嗎

實(shí)際上使用二階泰勒展開是為了xgboost能夠【自定義loss function】,任何損失函數(shù)只要二階可導(dǎo)即能【復(fù)用】陳大佬所做的關(guān)于最小二乘法的任何推導(dǎo)
XGBoost利用梯度優(yōu)化模型算法, 樣本是不放回的,想象一個(gè)樣本連續(xù)重復(fù)抽出,梯度來(lái)回踏步,這顯然不利于收斂。

貝葉斯公式,實(shí)際如何計(jì)算,如何解決精度問(wèn)題。

降維有哪些(LDA和PCA),說(shuō)一下PCA的原理,PCA和LDA的區(qū)別

PCA為非監(jiān)督降維,LDA為有監(jiān)督降維
PCA希望投影后的數(shù)據(jù)方差盡可能的大(最大可分性),因?yàn)槠浼僭O(shè)方差越多,則所包含的信息越多;而LDA則希望投影后相同類別的組內(nèi)方差小,而組間方差大。LDA能合理運(yùn)用標(biāo)簽信息,使得投影后的維度具有判別性,不同類別的數(shù)據(jù)盡可能的分開。

支撐向量越多越好還是越少越好

比如在二維特征空間,一般需要3個(gè)支持向量確定分割面
結(jié)論:在n維特征中,線性svm一般會(huì)產(chǎn)生n+1個(gè)支持向量
可認(rèn)為,如果訓(xùn)練出來(lái)的svm有d+1個(gè)支持向量,則使用核會(huì)將數(shù)據(jù)映射到d維空間,使其線性可分。
更高的維度意味著更高的復(fù)雜度,所以支持向量越多意味模型越復(fù)雜,有過(guò)擬合風(fēng)險(xiǎn)。
性能一致的情況下,更少的支持向量可能是更好的,但是不絕對(duì),可以做cross validation驗(yàn)證

基學(xué)習(xí)器,為什么gbdt用的是樹,我提到了CART樹,面試官問(wèn)可以用別的樹嗎,這個(gè)我不知道……還有g(shù)bdt可以用線性的基學(xué)習(xí)器嗎?為什么xgboost可以用線性的基學(xué)習(xí)器?

GBDT不能用線性的,關(guān)鍵點(diǎn)在于沒(méi)有L1、L2正則項(xiàng),可以與lasso回歸與嶺回歸結(jié)合。xgboost可以,因?yàn)樗怯姓齽t項(xiàng)的。
傳統(tǒng)GBDT以CART作為基分類器,xgboost還支持線性分類器,這個(gè)時(shí)候xgboost相當(dāng)于帶L1和L2正則化項(xiàng)的邏輯斯蒂回歸(分類問(wèn)題)或者線性回歸(回歸問(wèn)題)

樹模型做回歸

決策樹每個(gè)葉節(jié)點(diǎn)依照訓(xùn)練數(shù)據(jù)表現(xiàn)的概率傾向決定了其最終的預(yù)測(cè)類別;而回歸樹的葉節(jié)點(diǎn)卻是一個(gè)個(gè)具體的值,從預(yù)測(cè)值連續(xù)這個(gè)意義上嚴(yán)格來(lái)講,回歸樹不能稱為回歸算法。因?yàn)榛貧w樹的葉節(jié)點(diǎn)返回的是一團(tuán)訓(xùn)練數(shù)據(jù)的均值,而不是具體的連續(xù)的值。

kd樹

embedding好處

降低維度減少計(jì)算
特征交叉提升表達(dá)能力
在 embedding 空間中查找最近鄰,這可以很好的用于根據(jù)用戶的興趣來(lái)進(jìn)行推薦。
作為監(jiān)督性學(xué)習(xí)任務(wù)的輸入。
用于可視化不同離散變量之間的關(guān)系。

為什么用embedding不用onehot

在深度神經(jīng)網(wǎng)絡(luò)中你如果直接接入 onehot,那么你需要訓(xùn)練的參數(shù)維度也是爆炸式增長(zhǎng)
onehot稀疏,可能會(huì)導(dǎo)致梯度消失

決策樹回歸和分類不同

分類樹:id3,c4.5,cart
回歸樹用平方誤差和最小。遍歷所有特征的所有取值,找到某個(gè)特征的某個(gè)取值,使得預(yù)測(cè)誤差的平方和最小。這其實(shí)并不容易,所以很多的算法采取的是貪心算法。由于目標(biāo)函數(shù)是凸函數(shù),可以采用關(guān)于梯度的算法,以此來(lái)提高效率,當(dāng)然這也損失了精確度。

激活函數(shù)比較

RF的屬性采樣時(shí)有放回還是不放回

樣本屬性的隨機(jī)無(wú)放回的抽樣

lightgbm對(duì)缺失值的處理方法;

lightGBM通過(guò)默認(rèn)方式處理缺失值,可以通過(guò)設(shè)置use_missing = false 來(lái)使其無(wú)效。
lightGBM通過(guò)默認(rèn)的方式用NA(NaN)去表示缺失值,可以通過(guò)設(shè)置zero_as_missing = true 將其變?yōu)?

kmeans的K值確定方法

https://www.biaodianfu.com/k-means-choose-k.html

給定一個(gè)矩陣,在矩陣中選取一行,求取某一行某個(gè)數(shù)附近的5個(gè)數(shù)的值,需要用哪種數(shù)據(jù)結(jié)構(gòu)

KD樹

KD樹的實(shí)現(xiàn)描述

依次取各個(gè)坐標(biāo)軸,循環(huán)取,作為切分平面
取數(shù)據(jù)的中點(diǎn)作為切分點(diǎn)

logistic為什么用sigmoid函數(shù)

伯努利分布屬于指數(shù)分布族,滿足廣義線性模型,推出sigmoid函數(shù)
https://blog.csdn.net/baidu_15238925/article/details/81291247

貝葉斯公式的先驗(yàn)和后驗(yàn)概率

image

P(y|x)是后驗(yàn)概率,一般是我們求解的目標(biāo)。
P(x|y)是條件概率,又叫似然概率,一般是通過(guò)歷史數(shù)據(jù)統(tǒng)計(jì)得到。一般不把它叫做先驗(yàn)概率,但從定義上也符合先驗(yàn)定義。
P(y) 是先驗(yàn)概率,一般都是人主觀給出的。貝葉斯中的先驗(yàn)概率一般特指它。
P(x)其實(shí)也是先驗(yàn)概率,只是在貝葉斯的很多應(yīng)用中不重要(因?yàn)橹灰畲蠛篁?yàn)不求絕對(duì)值),需要時(shí)往往用全概率公式計(jì)算得到。

ID3算法復(fù)雜度,怎么優(yōu)化

m樣本個(gè)數(shù),n特征數(shù)目,p特征取值
復(fù)雜度mnp

決策樹怎么處理缺失值

gbdt中為什么有時(shí)候用梯度來(lái)代替殘差計(jì)算

殘差是loss為mse時(shí)求導(dǎo)的特殊情況,都是基于梯度的,只不過(guò)均方差求導(dǎo)之后變殘差了。也可以直接最小化這個(gè)loss,但是梯度可以讓我們最小化更多更復(fù)雜的loss

對(duì)于特征值缺失的情況,用lr和rf來(lái)預(yù)測(cè)缺失值,哪種方法更好

9.svm smo算法講解一下、
DBSCAN的計(jì)算原理,如何確定噪聲點(diǎn)

xgboost怎么處理缺失值

xgboost可以自動(dòng)學(xué)習(xí)出缺失值特征分裂的方向,初始的時(shí)候給了一個(gè)默認(rèn)的分裂方向

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評(píng)論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,676評(píng)論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評(píng)論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,873評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,266評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,482評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,036評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,846評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,025評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,279評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,751評(píng)論 3 394
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,016評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • __block和__weak修飾符的區(qū)別其實(shí)是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用,...
    LZM輪回閱讀 3,352評(píng)論 0 6
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,121評(píng)論 1 32
  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,713評(píng)論 0 73
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景。SDWebImage的原...
    LZM輪回閱讀 2,025評(píng)論 0 12
  • 習(xí)慣一個(gè)人吃飯 習(xí)慣一個(gè)人睡覺(jué) 習(xí)慣一個(gè)人逛街 習(xí)慣一個(gè)人 it is just A habit
    UL_葡萄丸子少女閱讀 257評(píng)論 0 0