最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Python面經(jīng)】數(shù)據(jù)分析崗_面試題整理總結(jié)(持續(xù)更新中…)

2023-08-09 20:23 作者:編程小懟懟  | 我要投稿

文中展示內(nèi)容

【文末領(lǐng)取】【文末領(lǐng)取】【文末領(lǐng)取】

偏統(tǒng)計理論知識

1. 撲克牌54張,平均分成2份,求這2份都有2張A的概率。

  • M表示兩個牌堆各有2個A的情況:M=4(25!25!)
    N表示兩個牌堆完全隨機的情況:N=27!27!
    所以概率為:M/N = 926/53*17

2.男生點擊率增加,女生點擊率增加,總體為何減少?

  • 因為男女的點擊率可能有較大差異,同時低點擊率群體的占比增大。
    如原來男性20人,點擊1人;女性100人,點擊99人,總點擊率100/120。
    現(xiàn)在男性100人,點擊6人;女性20人,點擊20人,總點擊率26/120。
    即那個段子“A系中智商最低的人去讀B,同時提高了A系和B系的平均智商?!?/p>

3. 參數(shù)估計

用樣本統(tǒng)計量去估計總體的參數(shù)。

4. 假設(shè)檢驗

參數(shù)估計和假設(shè)檢驗是統(tǒng)計推斷的兩個組成部分,它們都是利用樣本對總體進(jìn)行某種推斷,但推斷的角度不同。
參數(shù)估計討論的是用樣本估計總體參數(shù)的方法,總體參數(shù)μ在估計前是未知的。
而在假設(shè)檢驗中,則是先對μ的值提出一個假設(shè),然后利用樣本信息去檢驗這個假設(shè)是否成立。

5. 置信度、置信區(qū)間

置信區(qū)間是我們所計算出的變量存在的范圍,之心水平就是我們對于這個數(shù)值存在于我們計算出的這個范圍的可信程度。
舉例來講,有95%的把握,真正的數(shù)值在我們所計算的范圍里。
在這里,95%是置信水平,而計算出的范圍,就是置信區(qū)間。
如果置信度為95%, 則抽取100個樣本來估計總體的均值,由100個樣本所構(gòu)造的100個區(qū)間中,約有95個區(qū)間包含總體均值。

6. 協(xié)方差與相關(guān)系數(shù)的區(qū)別和聯(lián)系。

協(xié)方差:
協(xié)方差表示的是兩個變量的總體的誤差,這與只表示一個變量誤差的方差不同。如果兩個變量的變化趨勢一致,也就是說如果其中一個大于自身的期望值,另外一個也大于自身的期望值,那么兩個變量之間的協(xié)方差就是正值。如果兩個變量的變化趨勢相反,即其中一個大于自身的期望值,另外一個卻小于自身的期望值,那么兩個變量之間的協(xié)方差就是負(fù)值。
相關(guān)系數(shù):
研究變量之間線性相關(guān)程度的量,取值范圍是[-1,1]。相關(guān)系數(shù)也可以看成協(xié)方差:一種剔除了兩個變量量綱影響、標(biāo)準(zhǔn)化后的特殊協(xié)方差。

7. 中心極限定理

  • 中心極限定理定義:
    (1)任何一個樣本的平均值將會約等于其所在總體的平均值。
    (2)不管總體是什么分布,任意一個總體的樣本平均值都會圍繞在總體的平均值周圍,并且呈正態(tài)分布。

  • 中心極限定理作用:
    (1)在沒有辦法得到總體全部數(shù)據(jù)的情況下,我們可以用樣本來估計總體。
    (2)根據(jù)總體的平均值和標(biāo)準(zhǔn)差,判斷某個樣本是否屬于總體。


8. p值的含義。

  • 基本原理只有3個:1、一個命題只能證偽,不能證明為真 2、在一次觀測中,小概率事件不可能發(fā)生 3、在一次觀測中,如果小概率事件發(fā)生了,那就是假設(shè)命題為假

  • 證明邏輯就是:我要證明命題為真->證明該命題的否命題為假->在否命題的假設(shè)下,觀察到小概率事件發(fā)生了->否命題被推翻->原命題為真->搞定。
    結(jié)合這個例子來看:證明A是合格的投手-》證明“A不是合格投手”的命題為假-》觀察到一個事件(比如A連續(xù)10次投中10環(huán)),而這個事件在“A不是合格投手”的假設(shè)下,概率為p,小于0.05->小概率事件發(fā)生,否命題被推翻。

可以看到p越小-》這個事件越是小概率事件-》否命題越可能被推翻-》原命題越可信

--

9.時間序列分析

是同一現(xiàn)象在不同時間上的相繼觀察值排列而成的序列。

image.png

9.怎么向小孩子解釋正態(tài)分布

(隨口追問了一句小孩子的智力水平,面試官說七八歲,能數(shù)數(shù))

  • 拿出小朋友班級的成績表,每隔2分統(tǒng)計一下人數(shù)(因為小學(xué)一年級大家成績很接近),畫出鐘形。然后說這就是正態(tài)分布,大多數(shù)的人都集中在中間,只有少數(shù)特別好和不夠好

  • 拿出隔壁班的成績表,讓小朋友自己畫畫看,發(fā)現(xiàn)也是這樣的現(xiàn)象

  • 然后拿出班級的身高表,發(fā)現(xiàn)也是這個樣子的

  • 大部分人之間是沒有太大差別的,只有少數(shù)人特別好和不夠好,這是生活里普遍看到的現(xiàn)象,這就是正態(tài)分布

10. 下面對于“預(yù)測變量間可能存在較嚴(yán)重的多重共線性”的論述中錯誤的是?

A. 回歸系數(shù)的符號與專家經(jīng)驗知識不符(對)
B. 方差膨脹因子(VIF)<5(錯,大于10認(rèn)為有嚴(yán)重多重共線性)
C. 其中兩個預(yù)測變量的相關(guān)系數(shù)>=0.85(對)
D. 變量重要性與專家經(jīng)驗嚴(yán)重違背(對)

11. PCA為什么要中心化?PCA的主成分是什么?

  • 因為要算協(xié)方差。
    單純的線性變換只是產(chǎn)生了倍數(shù)縮放,無法消除量綱對協(xié)方差的影響,而協(xié)方差是為了讓投影后方差最大。

  • 在統(tǒng)計學(xué)中,主成分分析(PCA)是一種簡化數(shù)據(jù)集的技術(shù)。它是一個線性變換。這個變換把數(shù)據(jù)變換到一個新的坐標(biāo)系統(tǒng)中,使得任何數(shù)據(jù)投影的第一大方差在第一個坐標(biāo)(稱為第一主成分)上,第二大方差在第二個坐標(biāo)(第二主成分)上,依次類推。主成分分析經(jīng)常用減少數(shù)據(jù)集的維數(shù),同時保持?jǐn)?shù)據(jù)集的對方差貢獻(xiàn)最大的特征。這是通過保留低階主成分,忽略高階主成分做到的。這樣低階成分往往能夠保留住數(shù)據(jù)的最重要方面。但是,這也不是一定的,要視具體應(yīng)用而定。
    主成分分析的原理是設(shè)法將原來變量重新組合成一組新的相互無關(guān)的幾個綜合變量,同時根據(jù)實際需要從中可以取出幾個較少的綜合變量盡可能多地反映原來變量的信息的統(tǒng)計方法叫做主成分分析或稱主分量分析,也是數(shù)學(xué)上處理降維的一種方法。主成分分析是設(shè)法將原來眾多具有一定相關(guān)性(比如P個指標(biāo)),重新組合成一組新的互相無關(guān)的綜合指標(biāo)來代替原來的指標(biāo)。通常數(shù)學(xué)上的處理就是將原來P個指標(biāo)作線性組合,作為新的綜合指標(biāo)。最經(jīng)典的做法就是用F1(選取的第一個線性組合,即第一個綜合指標(biāo))的方差來表達(dá),即Va(rF1)越大,表示F1包含的信息越多。因此在所有的線性組合中選取的F1應(yīng)該是方差最大的,故稱F1為第一主成分。如果第一主成分不足以代表原來P個指標(biāo)的信息,再考慮選取F2即選第二個線性組合,為了有效地反映原來信息,F(xiàn)1已有的信息就不需要再出現(xiàn)再F2中,用數(shù)學(xué)語言表達(dá)就是要求Cov(F1,F2)=0,則稱F2為第二主成分,依此類推可以構(gòu)造出第三、第四,……,第P個主成分。

15. 極大似然估計

利用已知的樣本結(jié)果,反推最有可能(最大概率)導(dǎo)致這樣結(jié)果的參數(shù)值。

偏業(yè)務(wù)思維邏輯

1. 不用任何公開參考資料,估算今年新生兒出生數(shù)量。

  • 采用兩層模型(人群畫像x人群轉(zhuǎn)化):新生兒出生數(shù)=Σ各年齡層育齡女性數(shù)量*各年齡層生育比率

(一般面試中采用這種方法,即費米估計問題,可以參考《這也能想到?——巧妙解答無厘頭問題》)

  • 從數(shù)字到數(shù)字:如果有前幾年新生兒出生數(shù)量數(shù)據(jù),建立時間序列模型(需要考慮到二胎放開的突變事件)進(jìn)行預(yù)測

  • 找先兆指標(biāo),如嬰兒類用品的新增活躍用戶數(shù)量X表示新生兒家庭用戶。Xn/新生兒n為該年新生兒家庭用戶的轉(zhuǎn)化率,如X2007/新生兒2007為2007年新生兒家庭用戶的轉(zhuǎn)化率。該轉(zhuǎn)化率會隨平臺發(fā)展而發(fā)展,可以根據(jù)往年數(shù)量推出今年的大致轉(zhuǎn)化率,并根據(jù)今年新增新生兒家庭用戶數(shù)量推出今年估計的新生兒數(shù)量。

2. 如果次日用戶留存率下降了 5%該怎么分析?

  • 首先采用“兩層模型”分析:對用戶進(jìn)行細(xì)分,包括新老、渠道、活動、畫像等多個維度,然后分別計算每個維度下不同用戶的次日留存率。通過這種方法定位到導(dǎo)致留存率下降的用戶群體是誰。

  • 對于目標(biāo)群體次日留存下降問題,具體情況具體分析。具體分析可以采用“內(nèi)部-外部”因素考慮。
    a. 內(nèi)部因素分為獲客(渠道質(zhì)量低、活動獲取非目標(biāo)用戶)、滿足需求(新功能改動引發(fā)某類用戶不滿)、提活手段(簽到等提活手段沒達(dá)成目標(biāo)、產(chǎn)品自然使用周期低導(dǎo)致上次獲得的大量用戶短期內(nèi)不需要再使用等);
    b. 外部因素采用PEST分析(宏觀經(jīng)濟環(huán)境分析),政治(政策影響)、經(jīng)濟(短期內(nèi)主要是競爭環(huán)境,如對競爭對手的活動)、社會(輿論壓力、用戶生活方式變化、消費心理變化、價值觀變化等偏好變化)、技術(shù)(創(chuàng)新解決方案的出現(xiàn)、分銷渠道變化等)。

3. 賣玉米如何提高收益?價格提高多少才能獲取最大收益?

  • 收益 = 單價*銷售量,那么我們的策略是提高單位溢價或者提高銷售規(guī)模。

    • 提高單位溢價的方法:
      (1)品牌打造獲得長期溢價,但缺陷是需要大量前期營銷投入;
      (2)加工商品占據(jù)價值鏈更多環(huán)節(jié),如熟玉米、玉米汁、玉米蛋白粉;重定位商品,如禮品化等;
      (3)價格歧視,根據(jù)價格敏感度對不同用戶采用不同定價。

    • 銷售量=流量x轉(zhuǎn)化率,上述提高單位溢價的方法可能對流量產(chǎn)生影響,也可能對轉(zhuǎn)化率產(chǎn)生影響。

  • 收益 = 單價x流量x轉(zhuǎn)化率,短期內(nèi)能規(guī)?;捎玫膽?yīng)該是進(jìn)行價格歧視,如不同時間、不同商圈的玉米價格不同,采取高定價,然后對價格敏感的用戶提供優(yōu)惠券等。

4. 類比到頭條的收益,頭條放多少廣告可以獲得最大收益,不需要真的計算,只要有個思路就行。

  • 收益 = 出價x流量x點擊率x有效轉(zhuǎn)化率,放廣告的數(shù)量會提高流量,但會降低匹配程度,因此降低點擊率。最大收益是找到這個乘積的最大值,是一個有約束條件的最優(yōu)化問題。
    同時參考價格歧視方案,可以對不同的用戶投放不同數(shù)量的廣告。

5.APP激活量的來源渠道很多,怎樣對來源渠道變化大的進(jìn)行預(yù)警?

  • 如果渠道使用時間較長,認(rèn)為渠道的app激活量滿足一個分布,比較可能是正態(tài)分布。求平均值和標(biāo)準(zhǔn)差,對于今日數(shù)值與均值差大于3/2/1個標(biāo)準(zhǔn)差的渠道進(jìn)行預(yù)警。

  • 對于短期的新渠道,直接與均值進(jìn)行對比。

6.用戶剛進(jìn)來APP的時候會選擇屬性,怎樣在保證有完整用戶信息的同時讓用戶流失減少?

  • 采用技術(shù)接受模型(TAM)來分析,影響用戶接受選擇屬性這件事的主要因素有:

技術(shù)接受模型提出了兩個主要的決定因素:
①感知的有用性(perceived usefulness),反映一個人認(rèn)為使用一個具體的系統(tǒng)對他工作業(yè)績提高的程度;
②感知的易用性(perceived ease of use),反映一個人認(rèn)為容易使用一個具體的系統(tǒng)的程度。

(1)感知有用性:
a. 文案告知用戶選擇屬性能給用戶帶來的好處
(2)感知易用性:
a. 關(guān)聯(lián)用戶第三方賬號(如微博),可以冷啟動階段匹配用戶更有可能選擇的屬性,推薦用戶選擇。
b. 交互性做好。
(3)使用者態(tài)度:用戶對填寫信息的態(tài)度
a. 這里需要允許用戶跳過,后續(xù)再提醒用戶填寫
b. 告知用戶填寫的信息會受到很好的保護(hù)
(4)行為意圖:用戶使用APP的目的性,難以控制
(5)外部變量:如操作時間、操作環(huán)境等,這里難以控制

7.如何識別作弊用戶(爬蟲程序, 或者渠道偽造的假用戶)

  • 分類問題可以用機器學(xué)習(xí)的方法去解決,下面是我目前想到的特征:
    (1)渠道特征:渠道、渠道次日留存率、渠道流量以及各種比率特征
    (2)環(huán)境特征:設(shè)備(一般偽造假用戶的工作坊以低端機為主)、系統(tǒng)(刷量工作坊一般系統(tǒng)更新較慢)、wifi使用情況、使用時間、來源地區(qū)、ip是否進(jìn)過黑名單
    (3)用戶行為特征:訪問時長、訪問頁面、使用間隔、次日留存、活躍時間、頁面跳轉(zhuǎn)行為(假用戶的行為要么過于一致,要么過于隨機)、頁面使用行為(正常用戶對圖片的點擊也是有分布的,假用戶的行為容易過于隨機)
    (4)異常特征:設(shè)備號異常(頻繁重置idfa)、ip異常(異地訪問)、行為異常(突然大量點擊廣告、點贊)、數(shù)據(jù)包不完整等

8.怎么做惡意刷單檢測?

  • 分類問題用機器學(xué)習(xí)方法建模解決,我想到的特征有:
    (1)商家特征:商家歷史銷量、信用、產(chǎn)品類別、發(fā)貨快遞公司等
    (2)用戶行為特征:用戶信用、下單量、轉(zhuǎn)化率、下單路徑、瀏覽店鋪行為、支付賬號
    (3)環(huán)境特征(主要是避免機器刷單):地區(qū)、ip、手機型號等
    (4)異常檢測:ip地址經(jīng)常變動、經(jīng)常清空cookie信息、賬號近期交易成功率上升等
    (5)評論文本檢測:刷單的評論文本可能套路較為一致,計算與已標(biāo)注評論文本的相似度作為特征
    (6)圖片相似度檢測:同理,刷單可能重復(fù)利用圖片進(jìn)行評論

9.一個網(wǎng)站銷售額變低,你從哪幾個方面去考量?

  • 首先要定位到現(xiàn)象真正發(fā)生的位置,到底是誰的銷售額變低了?這里劃分的維度有:
    a. 用戶(畫像、來源地區(qū)、新老、渠道等)
    b. 產(chǎn)品或欄目
    c. 訪問時段

  • 定位到發(fā)生未知后,進(jìn)行問題拆解,關(guān)注目標(biāo)群體中哪個指標(biāo)下降導(dǎo)致網(wǎng)站銷售額下降:
    a. 銷售額=入站流量x下單率x客單價
    b. 入站流量 = Σ各來源流量x轉(zhuǎn)化率
    c. 下單率 = 頁面訪問量x轉(zhuǎn)化率
    d. 客單價 = 商品數(shù)量x商品價格

  • 確定問題源頭后,對問題原因進(jìn)行分析,如采用內(nèi)外部框架:
    a. 內(nèi)部:網(wǎng)站改版、產(chǎn)品更新、廣告投放
    b. 外部:用戶偏好變化、媒體新聞、經(jīng)濟壞境、競品行為等

10.用戶流失的分析,新用戶流失和老用戶流失有什么不同?

(1)用戶流失分析:

  • 兩層模型:細(xì)分用戶、產(chǎn)品、渠道,看到底是哪里用戶流失了。注意由于是用戶流失問題,所以這里細(xì)分用戶時可以細(xì)分用戶處在生命周期的哪個階段。

  • 指標(biāo)拆解:用戶流失數(shù)量 = 該群體用戶數(shù)量*流失率。拆解,看是因為到了這個階段的用戶數(shù)量多了(比如說大部分用戶到了衰退期),還是這個用戶群體的流失率比較高

  • 內(nèi)外部分析:
    a. 內(nèi)部:新手上手難度大、收費不合理、產(chǎn)品服務(wù)出現(xiàn)重大問題、活動質(zhì)量低、缺少留存手段、用戶參與度低等
    b. 外部:市場、競爭對手、社會環(huán)境、節(jié)假日等

(2)新用戶流失和老用戶流失有什么不同:

  • 新用戶流失:原因可能有非目標(biāo)用戶(剛性流失)、產(chǎn)品不滿足需求(自然流失)、產(chǎn)品難以上手(受挫流失)和競爭產(chǎn)品影響(市場流失)。
    新用戶要考慮如何在較少的數(shù)據(jù)支撐下做流失用戶識別,提前防止用戶流失,并如何對有效的新用戶進(jìn)行挽回。

  • 老用戶流失:原因可能有到達(dá)用戶生命周期衰退期(自然流失)、過度拉升arpu導(dǎo)致低端用戶驅(qū)逐(剛性流失)、社交蒸發(fā)難以滿足前期用戶需求(受挫流失)和競爭產(chǎn)品影響(市場流失)。
    老用戶有較多的數(shù)據(jù),更容易進(jìn)行流失用戶識別,做好防止用戶流失更重要。當(dāng)用戶流失后,要考慮用戶生命周期剩余價值,是否需要進(jìn)行挽回。

11.GMV升了20%怎么分析?

(我噼里啪啦分析了一通面試官笑嘻嘻地告訴我是數(shù)據(jù)錯了,因為面試較緊張沒有意識到這個問題,現(xiàn)在想想真是個大坑啊)

  • 參考該面試者經(jīng)驗,應(yīng)該先估算一下數(shù)字有沒有問題

  • 同樣的套路:
    (1)兩層模型:進(jìn)行用戶群體、產(chǎn)品、渠道細(xì)分,發(fā)現(xiàn)到底是誰的GMV提升了
    (2)指標(biāo)拆解:將GMV拆解成乘法模型,如GMV=廣告投放數(shù)量廣告點擊率產(chǎn)品瀏覽量放入購物車率交易成功率*客單價,檢查哪一步有顯著變化導(dǎo)致了GMV上升
    (3)內(nèi)外部分析:
    a. 內(nèi)部:網(wǎng)站、產(chǎn)品、廣告投放、活動等
    b. 外部:套PEST等框架也行,或者直接分析也行,注意MEMC即可

這一題要注意,GMV流水包括取消的訂單金額和退貨/拒收的訂單金額,還有一種原因是商家刷單然后退貨,雖然GMV上去了,但是實際成交量并沒有那么多。

11.如果現(xiàn)在有個情景,我們有一款游戲收入下降了,你怎么分析。

  • 兩層模型:細(xì)分用戶、渠道、產(chǎn)品,看到底是哪里的收入下降了

  • 指標(biāo)拆解:收入 = 玩家數(shù)量 * 活躍占比 * 付費轉(zhuǎn)化率 * 付費次數(shù) * 客單價
    進(jìn)一步細(xì)分,如玩家數(shù)量 = 老玩家數(shù)量 * 活躍度 + 新玩家數(shù)量 * 留存率等。然后對各個指標(biāo)與以往的數(shù)據(jù)進(jìn)行對比,發(fā)現(xiàn)哪些環(huán)節(jié)導(dǎo)致收入下降

  • 原因分析:
    a. 內(nèi)部:產(chǎn)品變化、促活活動、拉新活動、定價策略、運營策略、服務(wù)器故障等
    b. 外部:用戶偏好變化、市場環(huán)境變化、輿論環(huán)境變化、競爭對手行為、外部渠道變化等

  • 如何提高:基于乘法模型,可以采用上限分析,從前往后依次將指標(biāo)提升到投入足夠精力(假設(shè)優(yōu)先分配人力、經(jīng)費與渠道)后的上限,然后分析“收入”指標(biāo)的數(shù)值提升。找到數(shù)值提升最快的那個階段,就是我們提高收入的關(guān)鍵任務(wù)

12.現(xiàn)在有一個游戲測試的環(huán)節(jié),游戲測試結(jié)束后需要根據(jù)數(shù)據(jù)提交一份PPT,這個PPT你會如何安排?包括什么內(nèi)容?

這里可以套AARRR模型:

獲取用戶(Acquisition)
提高活躍度(Activation)
提高留存率(Retention)
獲取收入(Revenue)
自傳播(Refer)

  • 獲?。何覀兊挠脩羰钦l?用戶規(guī)模多大?
    a. 用戶分層

  • 激活:游戲是否吸引玩家?哪個渠道獲取的用戶有質(zhì)量(如次日留存高、首日停留時間長等)?

  • 留存:用戶能否持續(xù)留存?哪些用戶可以留存?

  • 轉(zhuǎn)化:用戶的游戲行為如何?能否進(jìn)行轉(zhuǎn)化?能否持續(xù)轉(zhuǎn)化?

  • 自傳播:用戶是否會向他人推薦該游戲?哪種方式能有效鼓勵用戶推薦該游戲?傳播k因子是否大于1?

13.比如你對樓市不熟悉,現(xiàn)在要你去做一個像58同城之類的,賣房的中介,電商,你會如何進(jìn)行分析。

(1)商業(yè)模式分析:中介做的是雙邊市場生意,通過解決市場信息不對稱下的信息流動問題,降低買方和賣方的交易成本,從而創(chuàng)造盈利空間
(2)需求分析:
a. 買方需求分析:低價買好房,對時間的需求有快的和慢的
b. 賣方需求分析:房子賣高價,對時間的需求有快的和慢的
(3)進(jìn)入條件分析(套SWOT分析法(態(tài)勢分析法)也行):
a. 自身條件
b. 競爭對手
c. 市場增長規(guī)模
(4)進(jìn)入策略分析:
a. 自身目標(biāo)
b. 目標(biāo)拆解
c. 分析目標(biāo)達(dá)成的可能性,預(yù)估將來一段時間,好/正常/壞條件下的目標(biāo)達(dá)成情況
d. 得出結(jié)論:是否進(jìn)入該市場

14. 某業(yè)務(wù)部門在上周結(jié)束了為期一周的大促,作為業(yè)務(wù)對口分析師,需要你對活動進(jìn)行一次評估,你會從哪幾方面進(jìn)行分析?

(1) 確定大促的目的:拉新?促活?清庫存?
(2) 根據(jù)目的確定核心指標(biāo)。
(3) 效果評估:
a. 自身比較:活動前與活動中比較
b. 與預(yù)定目標(biāo)比
c. 與同期其它活動比
d. 與往期同類活動比
(4)持續(xù)監(jiān)控:
a. 檢查活動后情況,避免透支消費情況發(fā)生
b. 如果是拉新等活動,根據(jù)后續(xù)數(shù)據(jù)檢驗這批新客的質(zhì)量

偏機器學(xué)習(xí)、數(shù)據(jù)挖掘

1. 給你一個無序數(shù)組,怎么才能合理采樣?

  • 無序數(shù)組是相對有序數(shù)組而言的,無序數(shù)組并不等于隨機,我們要做的是將無序數(shù)組洗牌,得到隨機排列。
    對于無序數(shù)組,n個元素能產(chǎn)生n!種排序。如果洗牌算法能產(chǎn)生n!種不同的結(jié)果,并且這些結(jié)果產(chǎn)生的概率相等,那么這個洗牌算法是正確的。
    方法:for i in range(len(n)): swap(arr[i], arr[random(i,n)])
    這段代碼是對隨機確定數(shù)組第一位的值,然后遞歸對剩余的數(shù)組進(jìn)行相同的過程,可以產(chǎn)生n!中等可能的排序情況。


2. 常用的Python庫有哪些?

  • numpy:矩陣運算

  • sklearn:常用機器學(xué)習(xí)和數(shù)據(jù)挖掘工具庫

  • scipy:基于numpy做高效的數(shù)學(xué)計算,如積分、線性代數(shù)、稀疏矩陣等

  • pandas:將數(shù)據(jù)用表的形式進(jìn)行操作

  • matplotlib:數(shù)據(jù)可視化工具

  • seaborn:數(shù)據(jù)可視化工具

  • keras/tensorflow/theano:深度學(xué)習(xí)工具包

  • NLTK:自然語言處理工具包

  • beautifulsoap:網(wǎng)頁文檔解析工具

3. 行存儲和列存儲的區(qū)別。

  • (1)行存儲:傳統(tǒng)數(shù)據(jù)庫的存儲方式,同一張表內(nèi)的數(shù)據(jù)放在一起,插入更新很快。缺點是每次查詢即使只涉及幾列,也要把所有數(shù)據(jù)讀取.
    (2)列存儲:OLAP等情況下,將數(shù)據(jù)按照列存儲會更高效,每一列都可以成為索引,投影很高效。缺點是查詢是選擇完成時,需要對選擇的列進(jìn)行重新組裝。
    “當(dāng)你的核心業(yè)務(wù)是 OLTP 時,一個行式數(shù)據(jù)庫,再加上優(yōu)化操作,可能是個最好的選擇。
    當(dāng)你的核心業(yè)務(wù)是 OLAP 時,一個列式數(shù)據(jù)庫,絕對是更好的選擇”


4.K-Means算法原理及改進(jìn),遇到異常值怎么辦?評估算法的指標(biāo)有哪些?

  • k-means原理:
    在給定K值和K個初始類簇中心點的情況下,把每個點(亦即數(shù)據(jù)記錄)分到離其最近的類簇中心點所代表的類簇中,所有點分配完畢之后,根據(jù)一個類簇內(nèi)的所有點重新計算該類簇的中心點(取平均值),然后再迭代的進(jìn)行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達(dá)到指定的迭代次數(shù)。

  • 改進(jìn):
    a. kmeans++:初始隨機點選擇盡可能遠(yuǎn),避免陷入局部解。方法是n+1個中心點選擇時,對于離前n個點選擇到的概率更大
    b. mini batch kmeans:每次只用一個子集做重入類并找到類心(提高訓(xùn)練速度)
    c. ISODATA:對于難以確定k的時候,使用該方法。思路是當(dāng)類下的樣本小時,剔除;類下樣本數(shù)量多時,拆分
    d. kernel kmeans:kmeans用歐氏距離計算相似度,也可以使用kernel映射到高維空間再聚類

  • 遇到異常值:
    a. 有條件的話使用密度聚類或者一些軟聚類的方式先聚類,剔除異常值。不過本來用kmeans就是為了快,這么做有些南轅北轍了
    b. 局部異常因子LOF:如果點p的密度明顯小于其鄰域點的密度,那么點p可能是異常值

    c. 多元高斯分布異常點檢測
    d. 使用PCA或自動編碼機進(jìn)行異常點檢測:使用降維后的維度作為新的特征空間,其降維結(jié)果可以認(rèn)為剔除了異常值的影響(因為過程是保留使投影后方差最大的投影方向)
    e. isolation forest:基本思路是建立樹模型,一個節(jié)點所在的樹深度越低,說明將其從樣本空間劃分出去越容易,因此越可能是異常值。是一種無監(jiān)督的方法,隨機選擇n個sumsampe,隨機選擇一個特征一個值。

    f. winsorize:對于簡單的,可以對單一維度做上下截取

  • 評估聚類算法的指標(biāo):
    a. 外部法(基于有標(biāo)注):Jaccard系數(shù)、純度
    b. 內(nèi)部法(無標(biāo)注):內(nèi)平方和WSS和外平方和BSS
    c. 此外還要考慮到算法的時間空間復(fù)雜度、聚類穩(wěn)定性等

5.數(shù)據(jù)預(yù)處理過程有哪些?

  • 缺失值處理:刪、插

  • 異常值處理

  • 特征轉(zhuǎn)換:時間特征sin化表示

  • 標(biāo)準(zhǔn)化:最大最小標(biāo)準(zhǔn)化、z標(biāo)準(zhǔn)化等

  • 歸一化:對于文本或評分特征,不同樣本之間可能有整體上的差異,如a文本共20個詞,b文本30000個詞,b文本中各個維度上的頻次都很可能遠(yuǎn)遠(yuǎn)高于a文本

  • 離散化:onehot、分箱等

6. 隨機森林原理?有哪些隨機方法?

  • 隨機森林原理:通過構(gòu)造多個決策樹,做bagging以提高泛化能力

  • subsample(有放回抽樣)、subfeature、低維空間投影(特征做組合,參考林軒田的《機器學(xué)習(xí)基石》)

7. PCA(主成分分析)

  • 主成分分析是一種降維的方法

  • 思想是將樣本從原來的特征空間轉(zhuǎn)化到新的特征空間,并且樣本在新特征空間坐標(biāo)軸上的投影方差盡可能大,這樣就能涵蓋樣本最主要的信息

  • 方法:
    a. 特征歸一化
    b. 求樣本特征的協(xié)方差矩陣A
    c. 求A的特征值和特征向量,即AX=λX
    d. 將特征值從大到小排列,選擇topK,對應(yīng)的特征向量就是新的坐標(biāo)軸


  • PCA也可以看成激活函數(shù)為線性函數(shù)的自動編碼機(參考林軒田的《機器學(xué)習(xí)基石》第13課,深度學(xué)習(xí))

8. hive?spark?sql?nlp?

  • Hive允許使用類SQL語句在hadoop集群上進(jìn)行讀、寫、管理等操作

  • Spark是一種與hadoop相似的開源集群計算環(huán)境,將數(shù)據(jù)集緩存在分布式內(nèi)存中的計算平臺,每輪迭代不需要讀取磁盤的IO操作,從而答復(fù)降低了單輪迭代時間

9. Linux基本命令

  • 目錄操作:ls、cd、mkdir、find、locate、whereis等

  • 文件操作:mv、cp、rm、touch、cat、more、less

  • 權(quán)限操作:chmod+rwx421

  • 賬號操作:su、whoami、last、who、w、id、groups等

  • 查看系統(tǒng):history、top

  • 關(guān)機重啟:shutdown、reboot

  • vim操作:i、w、w!、q、q!、wq等

10. NVL函數(shù)

  • 是oracle的一個函數(shù)

  • NVL( string1, replace_with),如果string1為NULL,則NVL函數(shù)返回replace_with的值,否則返回原來的值

11. LR

  • 用于分類問題的線性回歸

  • 采用sigmoid對輸出值進(jìn)行01轉(zhuǎn)換

  • 采用似然法求解

  • 手推

  • 優(yōu)缺點局限性

  • 改進(jìn)空間

12. sql中null與‘ ’的區(qū)別。

  • null表示空,用is null判斷

  • ''表示空字符串,用=''判斷

13. 數(shù)據(jù)庫與數(shù)據(jù)倉庫的區(qū)別。

  • 簡單理解下數(shù)據(jù)倉庫是多個數(shù)據(jù)庫以一種方式組織起來

  • 數(shù)據(jù)庫強調(diào)范式,盡可能減少冗余

  • 數(shù)據(jù)倉庫強調(diào)查詢分析的速度,優(yōu)化讀取操作,主要目的是快速做大量數(shù)據(jù)的查詢

  • 數(shù)據(jù)倉庫定期寫入新數(shù)據(jù),但不覆蓋原有數(shù)據(jù),而是給數(shù)據(jù)加上時間戳標(biāo)簽

  • 數(shù)據(jù)庫采用行存儲,數(shù)據(jù)倉庫一般采用列存儲(行存儲與列存儲區(qū)別見題3)

  • 數(shù)據(jù)倉庫的特征是面向主題、集成、相對穩(wěn)定、反映歷史變化,存儲數(shù)歷史數(shù)據(jù);數(shù)據(jù)庫是面向事務(wù)的,存儲在線交易數(shù)據(jù)

  • 數(shù)據(jù)倉庫的兩個基本元素是維表和事實表,維是看待問題的角度,比如時間、部門等,事實表放著要查詢的數(shù)據(jù)

14. SQL的數(shù)據(jù)類型。

  • 字符串:char、varchar、text

  • 二進(jìn)制串:binary、varbinary

  • 布爾類型:boolean

  • 數(shù)值類型:integer、smallint、bigint、decimal、numeric、float、real、double

  • 時間類型:date、time、timestamp、interval

15. 分類算法性能的主要評價指標(biāo)。

  • 查準(zhǔn)率、查全率、F1

  • AUC

  • LOSS

  • Gain和Lift

  • WOE和IV

16. 數(shù)據(jù)缺失怎么辦

  • 刪除樣本或刪除字段

  • 用中位數(shù)、平均值、眾數(shù)等填充

  • 插補:同類均值插補、多重插補、極大似然估計

  • 用其它字段構(gòu)建模型,預(yù)測該字段的值,從而填充缺失值(注意:如果該字段也是用于預(yù)測模型中作為特征,那么用其它字段建模填充缺失值的方式,并沒有給最終的預(yù)測模型引入新信息)

  • onehot,將缺失值也認(rèn)為一種取值

  • 壓縮感知及矩陣補全

17. GBDT(梯度提升樹)

  • 首先介紹Adaboost Tree,是一種boosting的樹集成方法?;舅悸肥且来斡?xùn)練多棵樹,每棵樹訓(xùn)練時對分錯的樣本進(jìn)行加權(quán)。樹模型中對樣本的加權(quán)實際是對樣本采樣幾率的加權(quán),在進(jìn)行有放回抽樣時,分錯的樣本更有可能被抽到

  • GBDT是Adaboost Tree的改進(jìn),每棵樹都是CART(分類回歸樹),樹在葉節(jié)點輸出的是一個數(shù)值,分類誤差就是真實值減去葉節(jié)點的輸出值,得到殘差。GBDT要做的就是使用梯度下降的方法減少分類誤差值。
    在GBDT的迭代中,假設(shè)我們前一輪迭代得到的強學(xué)習(xí)器是ft?1(x), 損失函數(shù)是L(y,ft?1(x)), 我們本輪迭代的目標(biāo)是找到一個CART回歸樹模型的弱學(xué)習(xí)器ht(x),讓本輪的損失損失L(y,ft(x)=L(y,ft?1(x)+ht(x))最小。也就是說,本輪迭代找到?jīng)Q策樹,要讓樣本的損失盡量變得更小。

  • GBDT的思想可以用一個通俗的例子解釋,假如有個人30歲,我們首先用20歲去擬合,發(fā)現(xiàn)損失有10歲,這時我們用6歲去擬合剩下的損失,發(fā)現(xiàn)差距還有4歲,第三輪我們用3歲擬合剩下的差距,差距就只有一歲了。如果我們的迭代輪數(shù)還沒有完,可以繼續(xù)迭代下面,每一輪迭代,擬合的歲數(shù)誤差都會減小。

  • 得到多棵樹后,根據(jù)每顆樹的分類誤差進(jìn)行加權(quán)投票

18. 如何避免決策樹過擬合?

  • 限制樹深

  • 剪枝

  • 限制葉節(jié)點數(shù)量

  • 正則化項

  • 增加數(shù)據(jù)

  • bagging(subsample、subfeature、低維空間投影)

  • 數(shù)據(jù)增強(加入有雜質(zhì)的數(shù)據(jù))

  • 早停

19.SVM的優(yōu)缺點

  • 優(yōu)點:
    a. 能應(yīng)用于非線性可分的情況
    b. 最后分類時由支持向量決定,復(fù)雜度取決于支持向量的數(shù)目而不是樣本空間的維度,避免了維度災(zāi)難
    c. 具有魯棒性:因為只使用少量支持向量,抓住關(guān)鍵樣本,剔除冗余樣本
    d. 高維低樣本下性能好,如文本分類

  • 缺點:
    a. 模型訓(xùn)練復(fù)雜度高
    b. 難以適應(yīng)多分類問題
    c. 核函數(shù)選擇沒有較好的方法論

20. 統(tǒng)計教授多門課老師數(shù)量并輸出每位老師教授課程數(shù)統(tǒng)計表。

解:設(shè)表class中字段為id,teacher,course

  • 統(tǒng)計教授多門課老師數(shù)量
    select count( * )
    from class
    group by teacher
    having count( * ) > 1

  • 輸出每位老師教授課程數(shù)統(tǒng)計
    select teacher, count(course) as count_course
    from class
    group by teacher

21. 有uid,app名稱,app類別,數(shù)據(jù)百億級別,設(shè)計算法算出每個app類別只安裝了一個app的uid總數(shù)。

  • 小數(shù)據(jù)量的話直接查詢:

select b.apptype,count(b.uid)
from
? ?(select uid, apptype, count(appname) as num
? ?from app_info
? ?group by uid,apptype
? ?having count(appname) = 1
? ?)b
group by b.apptype

  • 大數(shù)據(jù)量下(沒用過hadoop不太清楚,望大家指正)
    a. 原始文件可以拼接為uid-app-categroy
    b. map階段形成的<k,v>是<uid-category,1>
    c. reduce階段統(tǒng)計key為“uid-category”的count數(shù)量
    d. 只保留count為1的數(shù)據(jù)
    e. 剩下的數(shù)據(jù)量直接統(tǒng)計uid出現(xiàn)次數(shù)=category類別數(shù)的數(shù)據(jù)

22. 請說明隨機森林較一般決策樹穩(wěn)定的幾點原因.

  • bagging的方法,多個樹投票提高泛化能力

  • bagging中引入隨機(參數(shù)、樣本、特征、空間映射),避免單棵樹的過擬合,提高整體泛化能力

23. 什么是聚類分析?聚類算法有哪幾種?請選擇一種詳細(xì)描述其計算原理和步驟。

  • 聚類分析是一種無監(jiān)督的學(xué)習(xí)方法,根據(jù)一定條件將相對同質(zhì)的樣本歸到一個類總。

  • 聚類方法主要有:
    a. 層次聚類
    b. 劃分聚類:kmeans
    c. 密度聚類
    d. 網(wǎng)格聚類
    e. 模型聚類:高斯混合模型

  • k-means比較好介紹,選k個點開始作為聚類中心,然后剩下的點根據(jù)距離劃分到類中;找到新的類中心;重新分配點;迭代直到達(dá)到收斂條件或者迭代次數(shù)。優(yōu)點是快;缺點是要先指定k,同時對異常值很敏感。

24. 余弦距離與歐式距離求相似度的差別。

  1. 歐氏距離能夠體現(xiàn)個體數(shù)值特征的絕對差異,所以更多的用于需要從維度的數(shù)值大小中體現(xiàn)差異的分析,如使用用戶行為指標(biāo)分析用戶價值的相似度或差異。
    余弦距離更多的是從方向上區(qū)分差異,而對絕對的數(shù)值不敏感,更多的用于使用用戶對內(nèi)容評分來區(qū)分興趣的相似度和差異,同時修正了用戶間可能存在的度量標(biāo)準(zhǔn)不統(tǒng)一的問題(因為余弦距離對絕對數(shù)值不敏感)。

  2. 總體來說,歐氏距離體現(xiàn)數(shù)值上的絕對差異,而余弦距離體現(xiàn)方向上的相對差異。
    (1)例如,統(tǒng)計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);此時二者的余弦距很大,而歐氏距離很?。晃覀兎治鰞蓚€用戶對于不同視頻的偏好,更關(guān)注相對差異,顯然應(yīng)當(dāng)使用余弦距離。
    (2)而當(dāng)我們分析用戶活躍度,以登陸次數(shù)(單位:次)和平均觀看時長(單:分鐘)作為特征時,余弦距離會認(rèn)為(1,10)、(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有著極大差異的,此時我們更關(guān)注數(shù)值絕對差異,應(yīng)當(dāng)使用歐氏距離。

25. 數(shù)據(jù)清理中,處理缺失值的方法是?

由于調(diào)查、編碼和錄入誤差,數(shù)據(jù)中可能存在一些無效值和缺失值,需要給予適當(dāng)?shù)奶幚?。常用的處理方法有:估算,整例刪除,變量刪除和成對刪除。

  1. 估算(estimation)。最簡單的辦法就是用某個變量的樣本均值、中位數(shù)或眾數(shù)代替無效值和缺失值。這種辦法簡單,但沒有充分考慮數(shù)據(jù)中已有的信息,誤差可能較大。另一種辦法就是根據(jù)調(diào)查對象對其他問題的答案,通過變量之間的相關(guān)分析或邏輯推論進(jìn)行估計。例如,某一產(chǎn)品的擁有情況可能與家庭收入有關(guān),可以根據(jù)調(diào)查對象的家庭收入推算擁有這一產(chǎn)品的可能性。

  2. 整例刪除(casewise deletion)是剔除含有缺失值的樣本。由于很多問卷都可能存在缺失值,這種做法的結(jié)果可能導(dǎo)致有效樣本量大大減少,無法充分利用已經(jīng)收集到的數(shù)據(jù)。因此,只適合關(guān)鍵變量缺失,或者含有無效值或缺失值的樣本比重很小的情況。

  3. 變量刪除(variable deletion)。如果某一變量的無效值和缺失值很多,而且該變量對于所研究的問題不是特別重要,則可以考慮將該變量刪除。這種做法減少了供分析用的變量數(shù)目,但沒有改變樣本量。

  4. 成對刪除(pairwise deletion)是用一個特殊碼(通常是9、99、999等)代表無效值和缺失值,同時保留數(shù)據(jù)集中的全部變量和樣本。但是,在具體計算時只采用有完整答案的樣本,因而不同的分析因涉及的變量不同,其有效樣本量也會有所不同。這是一種保守的處理方法,最大限度地保留了數(shù)據(jù)集中的可用信息。

獲取方式:

一鍵三連+關(guān)注(重點)

后臺主動留下痕跡“面試題”(重點)


【Python面經(jīng)】數(shù)據(jù)分析崗_面試題整理總結(jié)(持續(xù)更新中…)的評論 (共 條)

分享到微博請遵守國家法律
义马市| 梧州市| 大荔县| 麦盖提县| 仙游县| 赫章县| 方正县| 恩施市| 临桂县| 拉萨市| 青神县| 嘉义县| 金昌市| 波密县| 南川市| 西峡县| 瑞安市| 平顶山市| 东城区| 招远市| 堆龙德庆县| 麟游县| 永靖县| 英吉沙县| 宁安市| 中超| 宁津县| 富民县| 尉氏县| 万全县| 绥滨县| 泗阳县| 清涧县| 沧州市| 双鸭山市| 任丘市| 兴国县| 夏津县| 福清市| 滨海县| 固始县|