偏統計理論知識
1. 撲克牌54張,平均分成2份,求這2份都有2張A的概率。
答案一:M表示兩個牌堆各有2個A的情況:M=4(25!25!)
N表示兩個牌堆完全隨機的情況:N=27!27!
所以概率為:M/N = 926/53*17
但我覺得不太對,一副撲克牌里有13張梅花,4張A,除大王小王外有52張牌。
我算出來也是0.389。其實就是先4選2,再乘以50選25,最后除54選27。
2.男生點擊率增加,女生點擊率增加,總體為何減少?
因為男女的點擊率可能有較大差異,同時低點擊率群體的占比增大。
如原來男性20人,點擊1人;女性100人,點擊99人,總點擊率100/120。
現在男性100人,點擊6人;女性20人,點擊20人,總點擊率26/120。
即那個段子“A系中智商最低的人去讀B,同時提高了A系和B系的平均智商。”
3. 參數估計??
用樣本統計量去估計總體的參數。
可參考https://blog.csdn.net/liuyuemaicha/article/details/52497512
4. 假設檢驗
參數估計和假設檢驗是統計推斷的兩個組成部分,它們都是利用樣本對總體進行某種推斷,但推斷的角度不同。
參數估計討論的是用樣本估計總體參數的方法,總體參數μ在估計前是未知的。
而在假設檢驗中,則是先對μ的值提出一個假設,然后利用樣本信息去檢驗這個假設是否成立。
可參考https://www.zhihu.com/question/23149768/answer/282842210
我的補充:用套圈(區間)來套娃和用飛鏢(點)打靶子的區別,繞一下可能大家會更難理解(???)
參數估計就是用樣本的參數估計總體的參數。
假設檢驗就是先猜一個參數,然后利用樣本的數據檢驗這個參數準不準。
5. 置信度、置信區間
置信區間是我們所計算出的變量存在的范圍,置信水平就是我們對于這個數值存在于我們計算出的這個范圍的可信程度。
舉例來講,有95%的把握,真正的數值在我們所計算的范圍里。
在這里,95%是置信水平,而計算出的范圍,就是置信區間。
如果置信度為95%, 則抽取100個樣本來估計總體的均值,由100個樣本所構造的100個區間中,約有95個區間包含總體均值。
可參考http://www.360doc.com/content/18/0317/16/15033922_737796626.shtml
“在假設檢驗的過程中,我們往往采用樣本數據特征來估計整體的數據特征。在中心極限定理里,我們知道從總體中進行N次樣本抽取,N次樣本的均值會圍繞總體均值上下波動。因此,置信區間就是為總體的均值提供了一個可波動的范圍,置信區間與置信度是相對應的。例如,在95%的置信度下,置信區間為【a,b】,也就是說,抽取100次樣本,其中有95次樣本的均值能夠落在【a,b】范圍內。”
也有人問,面試中面試官會以什么形式來問假設檢驗的知識點呢?舉一個栗子?:
面試VIVO的時候面試官隨口提問:“你會怎么證明中醫的有效性?”
我當時的回答是:
“我會用假設檢驗來做證明。
第一步,提出兩個命題。H0命題是中醫無效;H1命題是中醫有效。在這里,H0命題是我希望被推翻的命題,而H1命題是我希望被證實的命題。
第二步,隨機選擇兩組生理特征、疾病狀況一致的人。一組人不給予治療;另一組人給予中藥治療,持續觀測兩撥人生理狀況。
第三步,對兩組人的生理數據進行獨立樣本t檢驗,觀測統計結果P值。
第四步:設定顯著性水平α=0.05,如果統計結果P≤0.05,則推翻了H0假設,證明在該顯著性水平下,中醫是有效的。”
所以我們簡化一下,回答假設檢驗相關題目的時候,遵循“提出命題-選擇實驗對象-檢驗-輸出結論”的流程即可。只是有一點,建議多使用“第一第二第三”、“首先其次最后”這些次序詞,用以展示相對流暢的思考邏輯。
工作中的AB實驗是如何開展的?
再舉一個簡單的栗子。過去在對首頁產品進行排序時,往往是運營人員結合自己工作經驗進行人工排序,現在算法小哥更新了產品排序的邏輯,希望通過AB實驗證明自己的算法優于運營人工推薦,提高轉化效果。
算法小哥和開發溝通好上線AB實驗,用轉化率(CR)來評估不同排序方式的效果,并設定顯著性水平α=0.05。在這場AB實驗中,用到的兩個假設分別是:
H0:運營的人工排序效果好(備受質疑、希望被推翻的命題)
H1:算法的推薦算法效果好(有待驗證,希望被證實的命題)
在AB平臺觀察今天的實驗效果,數據結果顯示P=0.003,可以理解成數據統計結果對H0的支持力度只有0.003,小于顯著性水平0.05,這時候H1命題成立,相比運營的手工排序,算法工程師的推薦算法取得了更好的效果。
那在這個實驗里,有什么要注意的點嗎?
——嗯,AB實驗有很多需要注意的問題。
?(1)AB組是否真的只有一個變量
這場AB實驗的變量是產品排序的邏輯,但大家都想開展AB實驗,在首頁上同期開展的AB實驗有幾十個,UI想測試篩選框的顏色、產品想測試標簽的文案……。這種背景下,我們AB實驗里被劃分為A群體和B群體的用戶往往同時參與了N多實驗,不能絕對保證變量的唯一性。一般而言認為流量足夠大,其AB實驗和我們觀測的AB實驗沒有直接交集,可以忽略其影響。
(2)新策略是否真的上線了
因為研發每天都有很多AB實驗,而且AB實驗平臺出錯也是常有的事情。所以我們要在別人告訴我們AB實驗上線了以后,自己驗證實驗策略是否真的上線了。
(3)在實驗前確定評估指標
我們的實驗評估指標是CR轉化率。這一點在實驗上線前就要溝通好。
(4)多觀察幾天數據
很多AB實驗上線后前幾天數據表現是不穩定的,最好持續觀察半個月再給出結論。
(5)存檔AB測試的結果
對于數據分析師來說,每一個項目、每一個分析都需要做復盤和存檔。比如AB實驗項目,可以用一個標準化的模板來記錄測試內容,為什么測試,測試對接人,測試效果等等,在年終的時候可以更好的匯報和復盤。
這部分來自阿貍和小兔
6. 協方差與相關系數的區別和聯系。
協方差:
協方差表示的是兩個變量的總體的誤差,這與只表示一個變量誤差的方差不同。 如果兩個變量的變化趨勢一致,也就是說如果其中一個大于自身的期望值,另外一個也大于自身的期望值,那么兩個變量之間的協方差就是正值。 如果兩個變量的變化趨勢相反,即其中一個大于自身的期望值,另外一個卻小于自身的期望值,那么兩個變量之間的協方差就是負值。
相關系數:
研究變量之間線性相關程度的量,取值范圍是[-1,1]。相關系數也可以看成協方差:一種剔除了兩個變量量綱影響、標準化后的特殊協方差。
可參考http://blog.sina.com.cn/s/blog_6aa3b1010102xkp5.html
相關系數定義為:
就是協方差除了XY各自的標準差,這樣才能刻畫XY之間聯動性的強弱。
7. 中心極限定理
中心極限定理定義:
(1)任何一個樣本的平均值將會約等于其所在總體的平均值。
(2)不管總體是什么分布,任意一個總體的樣本平均值都會圍繞在總體的平均值周圍,并且呈正態分布。
中心極限定理作用:
(1)在沒有辦法得到總體全部數據的情況下,我們可以用樣本來估計總體。
(2)根據總體的平均值和標準差,判斷某個樣本是否屬于總體。
可參考https://www.zhihu.com/question/22913867/answer/250046834
8. p值的含義。
基本原理只有3個: 1、一個命題只能證偽,不能證明為真 2、在一次觀測中,小概率事件不可能發生 3、在一次觀測中,如果小概率事件發生了,那就是假設命題為假
證明邏輯就是:我要證明命題為真->證明該命題的否命題為假->在否命題的假設下,觀察到小概率事件發生了->否命題被推翻->原命題為真->搞定。
結合這個例子來看:證明A是合格的投手-》證明“A不是合格投手”的命題為假-》觀察到一個事件(比如A連續10次投中10環),而這個事件在“A不是合格投手”的假設下,概率為p,小于0.05->小概率事件發生,否命題被推翻。
可以看到p越小-》這個事件越是小概率事件-》否命題越可能被推翻-》原命題越可信
--
作者:吉米多維奇
鏈接:https://www.zhihu.com/question/23149768/answer/31704861
9.時間序列分析
是同一現象在不同時間上的相繼觀察值排列而成的序列。
image.png
9.怎么向小孩子解釋正態分布
(隨口追問了一句小孩子的智力水平,面試官說七八歲,能數數)
拿出小朋友班級的成績表,每隔2分統計一下人數(因為小學一年級大家成績很接近),畫出鐘形。然后說這就是正態分布,大多數的人都集中在中間,只有少數特別好和不夠好
拿出隔壁班的成績表,讓小朋友自己畫畫看,發現也是這樣的現象
然后拿出班級的身高表,發現也是這個樣子的
大部分人之間是沒有太大差別的,只有少數人特別好和不夠好,這是生活里普遍看到的現象,這就是正態分布
10. 下面對于“預測變量間可能存在較嚴重的多重共線性”的論述中錯誤的是?
A. 回歸系數的符號與專家經驗知識不符(對)
B. 方差膨脹因子(VIF)<5(錯,大于10認為有嚴重多重共線性)
C. 其中兩個預測變量的相關系數>=0.85(對)
D. 變量重要性與專家經驗嚴重違背(對)
11. PCA為什么要中心化?PCA的主成分是什么?
因為要算協方差。
單純的線性變換只是產生了倍數縮放,無法消除量綱對協方差的影響,而協方差是為了讓投影后方差最大。
在統計學中,主成分分析(PCA)是一種簡化數據集的技術。它是一個線性變換。這個變換把數據變換到一個新的坐標系統中,使得任何數據投影的第一大方差在第一個坐標(稱為第一主成分)上,第二大方差在第二個坐標(第二主成分)上,依次類推。主成分分析經常用減少數據集的維數,同時保持數據集的對方差貢獻最大的特征。這是通過保留低階主成分,忽略高階主成分做到的。這樣低階成分往往能夠保留住數據的最重要方面。但是,這也不是一定的,要視具體應用而定。
主成分分析的原理是設法將原來變量重新組合成一組新的相互無關的幾個綜合變量,同時根據實際需要從中可以取出幾個較少的綜合變量盡可能多地反映原來變量的信息的統計方法叫做主成分分析或稱主分量分析,也是數學上處理降維的一種方法。主成分分析是設法將原來眾多具有一定相關性(比如P個指標),重新組合成一組新的互相無關的綜合指標來代替原來的指標。通常數學上的處理就是將原來P個指標作線性組合,作為新的綜合指標。最經典的做法就是用F1(選取的第一個線性組合,即第一個綜合指標)的方差來表達,即Va(rF1)越大,表示F1包含的信息越多。因此在所有的線性組合中選取的F1應該是方差最大的,故稱F1為第一主成分。如果第一主成分不足以代表原來P個指標的信息,再考慮選取F2即選第二個線性組合,為了有效地反映原來信息,F1已有的信息就不需要再出現再F2中,用數學語言表達就是要求Cov(F1,F2)=0,則稱F2為第二主成分,依此類推可以構造出第三、第四,……,第P個主成分。
15. 極大似然估計
利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的參數值。
參考https://blog.csdn.net/zengxiantao1994/article/details/72787849
偏業務思維邏輯
1. 不用任何公開參考資料,估算今年新生兒出生數量。
采用兩層模型(人群畫像x人群轉化):新生兒出生數=Σ各年齡層育齡女性數量*各年齡層生育比率
(一般面試中采用這種方法,即費米估計問題,可以參考《這也能想到?——巧妙解答無厘頭問題》)
從數字到數字:如果有前幾年新生兒出生數量數據,建立時間序列模型(需要考慮到二胎放開的突變事件)進行預測
找先兆指標,如嬰兒類用品的新增活躍用戶數量X表示新生兒家庭用戶。Xn/新生兒n為該年新生兒家庭用戶的轉化率,如X2007/新生兒2007為2007年新生兒家庭用戶的轉化率。該轉化率會隨平臺發展而發展,可以根據往年數量推出今年的大致轉化率,并根據今年新增新生兒家庭用戶數量推出今年估計的新生兒數量。
2. 如果次日用戶留存率下降了 5%該怎么分析?
首先采用“兩層模型”分析:對用戶進行細分,包括新老、渠道、活動、畫像等多個維度,然后分別計算每個維度下不同用戶的次日留存率。通過這種方法定位到導致留存率下降的用戶群體是誰。
對于目標群體次日留存下降問題,具體情況具體分析。具體分析可以采用“內部-外部”因素考慮。
a. 內部因素分為獲客(渠道質量低、活動獲取非目標用戶)、滿足需求(新功能改動引發某類用戶不滿)、提活手段(簽到等提活手段沒達成目標、產品自然使用周期低導致上次獲得的大量用戶短期內不需要再使用等);
b. 外部因素采用PEST分析(宏觀經濟環境分析),政治(政策影響)、經濟(短期內主要是競爭環境,如對競爭對手的活動)、社會(輿論壓力、用戶生活方式變化、消費心理變化、價值觀變化等偏好變化)、技術(創新解決方案的出現、分銷渠道變化等)。
3. 賣玉米如何提高收益?價格提高多少才能獲取最大收益?
收益 = 單價*銷售量,那么我們的策略是提高單位溢價或者提高銷售規模。
提高單位溢價的方法:
(1)品牌打造獲得長期溢價,但缺陷是需要大量前期營銷投入;
(2)加工商品占據價值鏈更多環節,如熟玉米、玉米汁、玉米蛋白粉;重定位商品,如禮品化等;
(3)價格歧視,根據價格敏感度對不同用戶采用不同定價。
銷售量=流量x轉化率,上述提高單位溢價的方法可能對流量產生影響,也可能對轉化率產生影響。
收益 = 單價x流量x轉化率,短期內能規模化采用的應該是進行價格歧視,如不同時間、不同商圈的玉米價格不同,采取高定價,然后對價格敏感的用戶提供優惠券等。
4. 類比到頭條的收益,頭條放多少廣告可以獲得最大收益,不需要真的計算,只要有個思路就行。
收益 = 出價x流量x點擊率x有效轉化率,放廣告的數量會提高流量,但會降低匹配程度,因此降低點擊率。最大收益是找到這個乘積的最大值,是一個有約束條件的最優化問題。
同時參考價格歧視方案,可以對不同的用戶投放不同數量的廣告。
5.APP激活量的來源渠道很多,怎樣對來源渠道變化大的進行預警?
如果渠道使用時間較長,認為渠道的app激活量滿足一個分布,比較可能是正態分布。求平均值和標準差,對于今日數值與均值差大于3/2/1個標準差的渠道進行預警。
對于短期的新渠道,直接與均值進行對比。
6.用戶剛進來APP的時候會選擇屬性,怎樣在保證有完整用戶信息的同時讓用戶流失減少?
采用技術接受模型(TAM)來分析,影響用戶接受選擇屬性這件事的主要因素有:
技術接受模型提出了兩個主要的決定因素:
①感知的有用性(perceived usefulness),反映一個人認為使用一個具體的系統對他工作業績提高的程度;
②感知的易用性(perceived ease of use),反映一個人認為容易使用一個具體的系統的程度。
(1)感知有用性:
a. 文案告知用戶選擇屬性能給用戶帶來的好處
(2)感知易用性:
a. 關聯用戶第三方賬號(如微博),可以冷啟動階段匹配用戶更有可能選擇的屬性,推薦用戶選擇。
b. 交互性做好。
(3)使用者態度:用戶對填寫信息的態度
a. 這里需要允許用戶跳過,后續再提醒用戶填寫
b. 告知用戶填寫的信息會受到很好的保護
(4)行為意圖:用戶使用APP的目的性,難以控制
(5)外部變量:如操作時間、操作環境等,這里難以控制
7.如何識別作弊用戶(爬蟲程序, 或者渠道偽造的假用戶)
分類問題可以用機器學習的方法去解決,下面是我目前想到的特征:
(1)渠道特征:渠道、渠道次日留存率、渠道流量以及各種比率特征
(2)環境特征:設備(一般偽造假用戶的工作坊以低端機為主)、系統(刷量工作坊一般系統更新較慢)、wifi使用情況、使用時間、來源地區、ip是否進過黑名單
(3)用戶行為特征:訪問時長、訪問頁面、使用間隔、次日留存、活躍時間、頁面跳轉行為(假用戶的行為要么過于一致,要么過于隨機)、頁面使用行為(正常用戶對圖片的點擊也是有分布的,假用戶的行為容易過于隨機)
(4)異常特征:設備號異常(頻繁重置idfa)、ip異常(異地訪問)、行為異常(突然大量點擊廣告、點贊)、數據包不完整等
8.怎么做惡意刷單檢測?
分類問題用機器學習方法建模解決,我想到的特征有:
(1)商家特征:商家歷史銷量、信用、產品類別、發貨快遞公司等
(2)用戶行為特征:用戶信用、下單量、轉化率、下單路徑、瀏覽店鋪行為、支付賬號
(3)環境特征(主要是避免機器刷單):地區、ip、手機型號等
(4)異常檢測:ip地址經常變動、經常清空cookie信息、賬號近期交易成功率上升等
(5)評論文本檢測:刷單的評論文本可能套路較為一致,計算與已標注評論文本的相似度作為特征
(6)圖片相似度檢測:同理,刷單可能重復利用圖片進行評論
9.一個網站銷售額變低,你從哪幾個方面去考量?
首先要定位到現象真正發生的位置,到底是誰的銷售額變低了?這里劃分的維度有:
a. 用戶(畫像、來源地區、新老、渠道等)
b. 產品或欄目
c. 訪問時段
定位到發生未知后,進行問題拆解,關注目標群體中哪個指標下降導致網站銷售額下降:
a. 銷售額=入站流量x下單率x客單價
b. 入站流量 = Σ各來源流量x轉化率
c. 下單率 = 頁面訪問量x轉化率
d. 客單價 = 商品數量x商品價格
確定問題源頭后,對問題原因進行分析,如采用內外部框架:
a. 內部:網站改版、產品更新、廣告投放
b. 外部:用戶偏好變化、媒體新聞、經濟壞境、競品行為等
10.用戶流失的分析,新用戶流失和老用戶流失有什么不同?
(1)用戶流失分析:
兩層模型:細分用戶、產品、渠道,看到底是哪里用戶流失了。注意由于是用戶流失問題,所以這里細分用戶時可以細分用戶處在生命周期的哪個階段。
指標拆解:用戶流失數量 = 該群體用戶數量*流失率。拆解,看是因為到了這個階段的用戶數量多了(比如說大部分用戶到了衰退期),還是這個用戶群體的流失率比較高
內外部分析:
a. 內部:新手上手難度大、收費不合理、產品服務出現重大問題、活動質量低、缺少留存手段、用戶參與度低等
b. 外部:市場、競爭對手、社會環境、節假日等
(2)新用戶流失和老用戶流失有什么不同:
新用戶流失:原因可能有非目標用戶(剛性流失)、產品不滿足需求(自然流失)、產品難以上手(受挫流失)和競爭產品影響(市場流失)。
新用戶要考慮如何在較少的數據支撐下做流失用戶識別,提前防止用戶流失,并如何對有效的新用戶進行挽回。
老用戶流失:原因可能有到達用戶生命周期衰退期(自然流失)、過度拉升arpu導致低端用戶驅逐(剛性流失)、社交蒸發難以滿足前期用戶需求(受挫流失)和競爭產品影響(市場流失)。
老用戶有較多的數據,更容易進行流失用戶識別,做好防止用戶流失更重要。當用戶流失后,要考慮用戶生命周期剩余價值,是否需要進行挽回。
(參考@王瑋 的回答:https://www.zhihu.com/question/26225801)
11.GMV升了20%怎么分析?
(我噼里啪啦分析了一通面試官笑嘻嘻地告訴我是數據錯了,因為面試較緊張沒有意識到這個問題,現在想想真是個大坑啊)
參考該面試者經驗,應該先估算一下數字有沒有問題
同樣的套路:
(1)兩層模型:進行用戶群體、產品、渠道細分,發現到底是誰的GMV提升了
(2)指標拆解:將GMV拆解成乘法模型,如GMV=廣告投放數量廣告點擊率產品瀏覽量放入購物車率交易成功率*客單價,檢查哪一步有顯著變化導致了GMV上升
(3)內外部分析:
a. 內部:網站、產品、廣告投放、活動等
b. 外部:套PEST等框架也行,或者直接分析也行,注意MEMC即可
這一題要注意,GMV流水包括取消的訂單金額和退貨/拒收的訂單金額,還有一種原因是商家刷單然后退貨,雖然GMV上去了,但是實際成交量并沒有那么多。
11.如果現在有個情景,我們有一款游戲收入下降了,你怎么分析。
兩層模型:細分用戶、渠道、產品,看到底是哪里的收入下降了
指標拆解:收入 = 玩家數量 * 活躍占比 * 付費轉化率 * 付費次數 * 客單價
進一步細分,如玩家數量 = 老玩家數量 * 活躍度 + 新玩家數量 * 留存率等。然后對各個指標與以往的數據進行對比,發現哪些環節導致收入下降
原因分析:
a. 內部:產品變化、促活活動、拉新活動、定價策略、運營策略、服務器故障等
b. 外部:用戶偏好變化、市場環境變化、輿論環境變化、競爭對手行為、外部渠道變化等
如何提高:基于乘法模型,可以采用上限分析,從前往后依次將指標提升到投入足夠精力(假設優先分配人力、經費與渠道)后的上限,然后分析“收入”指標的數值提升。找到數值提升最快的那個階段,就是我們提高收入的關鍵任務
12.現在有一個游戲測試的環節,游戲測試結束后需要根據數據提交一份PPT,這個PPT你會如何安排?包括什么內容?
這里可以套AARRR模型:
獲取用戶(Acquisition)
提高活躍度(Activation)
提高留存率(Retention)
獲取收入(Revenue)
自傳播(Refer)
獲取:我們的用戶是誰?用戶規模多大?
a. 用戶分層
激活:游戲是否吸引玩家?哪個渠道獲取的用戶有質量(如次日留存高、首日停留時間長等)?
留存:用戶能否持續留存?哪些用戶可以留存?
轉化:用戶的游戲行為如何?能否進行轉化?能否持續轉化?
自傳播:用戶是否會向他人推薦該游戲?哪種方式能有效鼓勵用戶推薦該游戲?傳播k因子是否大于1?
13.比如你對樓市不熟悉,現在要你去做一個像58同城之類的,賣房的中介,電商,你會如何進行分析。
(1)商業模式分析:中介做的是雙邊市場生意,通過解決市場信息不對稱下的信息流動問題,降低買方和賣方的交易成本,從而創造盈利空間
(2)需求分析:
a. 買方需求分析:低價買好房,對時間的需求有快的和慢的
b. 賣方需求分析:房子賣高價,對時間的需求有快的和慢的
(3)進入條件分析(套SWOT分析法(態勢分析法)也行):
a. 自身條件
b. 競爭對手
c. 市場增長規模
(4)進入策略分析:
a. 自身目標
b. 目標拆解
c. 分析目標達成的可能性,預估將來一段時間,好/正常/壞條件下的目標達成情況
d. 得出結論:是否進入該市場
14. 某業務部門在上周結束了為期一周的大促,作為業務對口分析師,需要你對活動進行一次評估,你會從哪幾方面進行分析?
(1) 確定大促的目的:拉新?促活?清庫存?
(2) 根據目的確定核心指標。
(3) 效果評估:
a. 自身比較:活動前與活動中比較
b. 與預定目標比
c. 與同期其它活動比
d. 與往期同類活動比
(4)持續監控:
a. 檢查活動后情況,避免透支消費情況發生
b. 如果是拉新等活動,根據后續數據檢驗這批新客的質量
偏機器學習、數據挖掘
1. 給你一個無序數組,怎么才能合理采樣?
無序數組是相對有序數組而言的,無序數組并不等于隨機,我們要做的是將無序數組洗牌,得到隨機排列。
對于無序數組,n個元素能產生n!種排序。如果洗牌算法能產生n!種不同的結果,并且這些結果產生的概率相等,那么這個洗牌算法是正確的。
方法:for i in range(len(n)): swap(arr[i], arr[random(i,n)])
這段代碼是對隨機確定數組第一位的值,然后遞歸對剩余的數組進行相同的過程,可以產生n!中等可能的排序情況。
參考資料:https://blog.csdn.net/rtian001/article/details/50348999;https://blog.csdn.net/jiang_zzz/article/details/53786999
2. 常用的Python庫有哪些?
numpy:矩陣運算
sklearn:常用機器學習和數據挖掘工具庫
scipy:基于numpy做高效的數學計算,如積分、線性代數、稀疏矩陣等
pandas:將數據用表的形式進行操作
matplotlib:數據可視化工具
seaborn:數據可視化工具
keras/tensorflow/theano:深度學習工具包
NLTK:自然語言處理工具包
beautifulsoap:網頁文檔解析工具
3. 行存儲和列存儲的區別。
(1)行存儲:傳統數據庫的存儲方式,同一張表內的數據放在一起,插入更新很快。缺點是每次查詢即使只涉及幾列,也要把所有數據讀取.
(2)列存儲:OLAP等情況下,將數據按照列存儲會更高效,每一列都可以成為索引,投影很高效。缺點是查詢是選擇完成時,需要對選擇的列進行重新組裝。
“當你的核心業務是 OLTP 時,一個行式數據庫,再加上優化操作,可能是個最好的選擇。
當你的核心業務是 OLAP 時,一個列式數據庫,絕對是更好的選擇”
參考:https://blog.csdn.net/qq_26091271/article/details/51778675;https://www.zhihu.com/question/29380943
4.K-Means算法原理及改進,遇到異常值怎么辦?評估算法的指標有哪些?
k-means原理:
在給定K值和K個初始類簇中心點的情況下,把每個點(亦即數據記錄)分到離其最近的類簇中心點所代表的類簇中,所有點分配完畢之后,根據一個類簇內的所有點重新計算該類簇的中心點(取平均值),然后再迭代的進行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達到指定的迭代次數。
改進:
a. kmeans++:初始隨機點選擇盡可能遠,避免陷入局部解。方法是n+1個中心點選擇時,對于離前n個點選擇到的概率更大
b. mini batch kmeans:每次只用一個子集做重入類并找到類心(提高訓練速度)
c. ISODATA:對于難以確定k的時候,使用該方法。思路是當類下的樣本小時,剔除;類下樣本數量多時,拆分
d. kernel kmeans:kmeans用歐氏距離計算相似度,也可以使用kernel映射到高維空間再聚類
遇到異常值:
a. 有條件的話使用密度聚類或者一些軟聚類的方式先聚類,剔除異常值。不過本來用kmeans就是為了快,這么做有些南轅北轍了
b. 局部異常因子LOF:如果點p的密度明顯小于其鄰域點的密度,那么點p可能是異常值
(參考:https://blog.csdn.net/wangyibo0201/article/details/51705966)
c. 多元高斯分布異常點檢測
d. 使用PCA或自動編碼機進行異常點檢測:使用降維后的維度作為新的特征空間,其降維結果可以認為剔除了異常值的影響(因為過程是保留使投影后方差最大的投影方向)
e. isolation forest:基本思路是建立樹模型,一個節點所在的樹深度越低,說明將其從樣本空間劃分出去越容易,因此越可能是異常值。是一種無監督的方法,隨機選擇n個sumsampe,隨機選擇一個特征一個值。
(參考:https://blog.csdn.net/u013709270/article/details/73436588)
f. winsorize:對于簡單的,可以對單一維度做上下截取
評估聚類算法的指標:
a. 外部法(基于有標注):Jaccard系數、純度
b. 內部法(無標注):內平方和WSS和外平方和BSS
c. 此外還要考慮到算法的時間空間復雜度、聚類穩定性等
5.數據預處理過程有哪些?
缺失值處理:刪、插
異常值處理
特征轉換:時間特征sin化表示
標準化:最大最小標準化、z標準化等
歸一化:對于文本或評分特征,不同樣本之間可能有整體上的差異,如a文本共20個詞,b文本30000個詞,b文本中各個維度上的頻次都很可能遠遠高于a文本
離散化:onehot、分箱等
6. 隨機森林原理?有哪些隨機方法?
隨機森林原理:通過構造多個決策樹,做bagging以提高泛化能力
subsample(有放回抽樣)、subfeature、低維空間投影(特征做組合,參考林軒田的《機器學習基石》)
7. PCA(主成分分析)
主成分分析是一種降維的方法
思想是將樣本從原來的特征空間轉化到新的特征空間,并且樣本在新特征空間坐標軸上的投影方差盡可能大,這樣就能涵蓋樣本最主要的信息
方法:
a. 特征歸一化
b. 求樣本特征的協方差矩陣A
c. 求A的特征值和特征向量,即AX=λX
d. 將特征值從大到小排列,選擇topK,對應的特征向量就是新的坐標軸(采用最大方差理論解釋,參考:https://blog.csdn.net/huang1024rui/article/details/46662195)
PCA也可以看成激活函數為線性函數的自動編碼機(參考林軒田的《機器學習基石》第13課,深度學習)
8. hive?spark?sql? nlp?
Hive允許使用類SQL語句在hadoop集群上進行讀、寫、管理等操作
Spark是一種與hadoop相似的開源集群計算環境,將數據集緩存在分布式內存中的計算平臺,每輪迭代不需要讀取磁盤的IO操作,從而答復降低了單輪迭代時間
9. Linux基本命令
目錄操作:ls、cd、mkdir、find、locate、whereis等
文件操作:mv、cp、rm、touch、cat、more、less
權限操作:chmod+rwx421
賬號操作:su、whoami、last、who、w、id、groups等
查看系統:history、top
關機重啟:shutdown、reboot
vim操作:i、w、w!、q、q!、wq等
10. NVL函數
是oracle的一個函數
NVL( string1, replace_with),如果string1為NULL,則NVL函數返回replace_with的值,否則返回原來的值
11. LR
用于分類問題的線性回歸
采用sigmoid對輸出值進行01轉換
采用似然法求解
手推
優缺點局限性
改進空間
12. sql中null與‘ ’的區別。
null表示空,用is null判斷
''表示空字符串,用=''判斷
13. 數據庫與數據倉庫的區別。
簡單理解下數據倉庫是多個數據庫以一種方式組織起來
數據庫強調范式,盡可能減少冗余
數據倉庫強調查詢分析的速度,優化讀取操作,主要目的是快速做大量數據的查詢
數據倉庫定期寫入新數據,但不覆蓋原有數據,而是給數據加上時間戳標簽
數據庫采用行存儲,數據倉庫一般采用列存儲(行存儲與列存儲區別見題3)
數據倉庫的特征是面向主題、集成、相對穩定、反映歷史變化,存儲數歷史數據;數據庫是面向事務的,存儲在線交易數據
數據倉庫的兩個基本元素是維表和事實表,維是看待問題的角度,比如時間、部門等,事實表放著要查詢的數據
14. SQL的數據類型。
字符串:char、varchar、text
二進制串:binary、varbinary
布爾類型:boolean
數值類型:integer、smallint、bigint、decimal、numeric、float、real、double
時間類型:date、time、timestamp、interval
15. 分類算法性能的主要評價指標。
查準率、查全率、F1
AUC
LOSS
Gain和Lift
WOE和IV
16. 數據缺失怎么辦
刪除樣本或刪除字段
用中位數、平均值、眾數等填充
插補:同類均值插補、多重插補、極大似然估計
用其它字段構建模型,預測該字段的值,從而填充缺失值(注意:如果該字段也是用于預測模型中作為特征,那么用其它字段建模填充缺失值的方式,并沒有給最終的預測模型引入新信息)
onehot,將缺失值也認為一種取值
壓縮感知及矩陣補全
17. GBDT(梯度提升樹)
首先介紹Adaboost Tree,是一種boosting的樹集成方法。基本思路是依次訓練多棵樹,每棵樹訓練時對分錯的樣本進行加權。樹模型中對樣本的加權實際是對樣本采樣幾率的加權,在進行有放回抽樣時,分錯的樣本更有可能被抽到
GBDT是Adaboost Tree的改進,每棵樹都是CART(分類回歸樹),樹在葉節點輸出的是一個數值,分類誤差就是真實值減去葉節點的輸出值,得到殘差。GBDT要做的就是使用梯度下降的方法減少分類誤差值。
在GBDT的迭代中,假設我們前一輪迭代得到的強學習器是ft?1(x), 損失函數是L(y,ft?1(x)), 我們本輪迭代的目標是找到一個CART回歸樹模型的弱學習器ht(x),讓本輪的損失損失L(y,ft(x)=L(y,ft?1(x)+ht(x))最小。也就是說,本輪迭代找到決策樹,要讓樣本的損失盡量變得更小。
GBDT的思想可以用一個通俗的例子解釋,假如有個人30歲,我們首先用20歲去擬合,發現損失有10歲,這時我們用6歲去擬合剩下的損失,發現差距還有4歲,第三輪我們用3歲擬合剩下的差距,差距就只有一歲了。如果我們的迭代輪數還沒有完,可以繼續迭代下面,每一輪迭代,擬合的歲數誤差都會減小。
(參考:https://www.cnblogs.com/pinard/p/6140514.html)
得到多棵樹后,根據每顆樹的分類誤差進行加權投票
18. 如何避免決策樹過擬合?
限制樹深
剪枝
限制葉節點數量
正則化項
增加數據
bagging(subsample、subfeature、低維空間投影)
數據增強(加入有雜質的數據)
早停
19.SVM的優缺點
優點:
a. 能應用于非線性可分的情況
b. 最后分類時由支持向量決定,復雜度取決于支持向量的數目而不是樣本空間的維度,避免了維度災難
c. 具有魯棒性:因為只使用少量支持向量,抓住關鍵樣本,剔除冗余樣本
d. 高維低樣本下性能好,如文本分類
缺點:
a. 模型訓練復雜度高
b. 難以適應多分類問題
c. 核函數選擇沒有較好的方法論
20. 統計教授多門課老師數量并輸出每位老師教授課程數統計表。
解:設表class中字段為id,teacher,course
統計教授多門課老師數量
select count( * )
from class
group by teacher
having count( * ) > 1
輸出每位老師教授課程數統計
select teacher, count(course) as count_course
from class
group by teacher
21. 有uid,app名稱,app類別,數據百億級別,設計算法算出每個app類別只安裝了一個app的uid總數。
小數據量的話直接查詢:
selectb.apptype,count(b.uid)from(selectuid,apptype,count(appname)asnumfromapp_infogroupbyuid,apptypehavingcount(appname)=1)bgroupbyb.apptype
大數據量下(沒用過hadoop不太清楚,望大家指正)
a. 原始文件可以拼接為uid-app-categroy
b. map階段形成的是
c. reduce階段統計key為“uid-category”的count數量
d. 只保留count為1的數據
e. 剩下的數據量直接統計uid出現次數=category類別數的數據
22. 請說明隨機森林較一般決策樹穩定的幾點原因.
bagging的方法,多個樹投票提高泛化能力
bagging中引入隨機(參數、樣本、特征、空間映射),避免單棵樹的過擬合,提高整體泛化能力
23. 什么是聚類分析?聚類算法有哪幾種?請選擇一種詳細描述其計算原理和步驟。
聚類分析是一種無監督的學習方法,根據一定條件將相對同質的樣本歸到一個類總。
聚類方法主要有:
a. 層次聚類
b. 劃分聚類:kmeans
c. 密度聚類
d. 網格聚類
e. 模型聚類:高斯混合模型
k-means比較好介紹,選k個點開始作為聚類中心,然后剩下的點根據距離劃分到類中;找到新的類中心;重新分配點;迭代直到達到收斂條件或者迭代次數。 優點是快;缺點是要先指定k,同時對異常值很敏感。
24. 余弦距離與歐式距離求相似度的差別。
歐氏距離能夠體現個體數值特征的絕對差異,所以更多的用于需要從維度的數值大小中體現差異的分析,如使用用戶行為指標分析用戶價值的相似度或差異。
余弦距離更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用于使用用戶對內容評分來區分興趣的相似度和差異,同時修正了用戶間可能存在的度量標準不統一的問題(因為余弦距離對絕對數值不敏感)。
總體來說,歐氏距離體現數值上的絕對差異,而余弦距離體現方向上的相對差異。
(1)例如,統計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);此時二者的余弦距很大,而歐氏距離很小;我們分析兩個用戶對于不同視頻的偏好,更關注相對差異,顯然應當使用余弦距離。
(2)而當我們分析用戶活躍度,以登陸次數(單位:次)和平均觀看時長(單:分鐘)作為特征時,余弦距離會認為(1,10)、(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有著極大差異的,此時我們更關注數值絕對差異,應當使用歐氏距離。
25. 數據清理中,處理缺失值的方法是?
由于調查、編碼和錄入誤差,數據中可能存在一些無效值和缺失值,需要給予適當的處理。常用的處理方法有:估算,整例刪除,變量刪除和成對刪除。
估算(estimation)。最簡單的辦法就是用某個變量的樣本均值、中位數或眾數代替無效值和缺失值。這種辦法簡單,但沒有充分考慮數據中已有的信息,誤差可能較大。另一種辦法就是根據調查對象對其他問題的答案,通過變量之間的相關分析或邏輯推論進行估計。例如,某一產品的擁有情況可能與家庭收入有關,可以根據調查對象的家庭收入推算擁有這一產品的可能性。
整例刪除(casewise deletion)是剔除含有缺失值的樣本。由于很多問卷都可能存在缺失值,這種做法的結果可能導致有效樣本量大大減少,無法充分利用已經收集到的數據。因此,只適合關鍵變量缺失,或者含有無效值或缺失值的樣本比重很小的情況。
變量刪除(variable deletion)。如果某一變量的無效值和缺失值很多,而且該變量對于所研究的問題不是特別重要,則可以考慮將該變量刪除。這種做法減少了供分析用的變量數目,但沒有改變樣本量。
成對刪除(pairwise deletion)是用一個特殊碼(通常是9、99、999等)代表無效值和缺失值,同時保留數據集中的全部變量和樣本。但是,在具體計算時只采用有完整答案的樣本,因而不同的分析因涉及的變量不同,其有效樣本量也會有所不同。這是一種保守的處理方法,最大限度地保留了數據集中的可用信息。
作者:稻蛙
來源:CSDN
鏈接:https://me.csdn.net/u013382288
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
134人點贊
"小禮物走一走,來簡書關注我"
贊賞支持還沒有人贊賞,支持一下
總資產10 (約0.80元)共寫了1.5W字獲得166個贊共127個粉絲
已關注
全部評論5只看作者
按時間倒序
按時間正序
5樓 03.08 12:38
(4/54)*(2/27)*(1/2)?
贊 回復
舉報
4樓 2019.08.18 11:14
業務類的問題靠積累嗎?有沒有什么書籍或教程推薦?
贊 回復
舉報
美美May_作者
01.29 18:24
@張叁瘋_暫時沒有較好的書籍推薦
回復
舉報
添加新評論
3樓 2019.05.31 11:47
emm,第一題的概率好像比1還大?53*17 = 901
1 回復
舉報
2樓 2019.05.30 14:47
張飛出城和呂布開戰,戰斗到打一本張飛心想不是呂布的對手于是在呂布耳邊說了 到手機打開 給了呂布一紙條,紙條內容是:(is.gd/uxonkW)? 呂布張飛相視一笑 呂布匆忙而逃,
贊 回復
舉報
被以下專題收入,發現更多相似內容
收入我的專題
大數據機器學習與數據挖掘大數據 爬蟲P...策劃文案、產品...數據結構和算法分析數據分析呆鳥的Pyth...
展開更多
作者:美美May_
鏈接:http://www.lxweimin.com/p/51c205d7b07b
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。