1. 程式人生 > >資料探勘分析相關面試題(親身經歷),持續更新中

資料探勘分析相關面試題(親身經歷),持續更新中

以下大多數都是博主或者博主同事經歷過的面試題喲~關於工作內容的就不寫啦,一些基礎面試題跟大家分享下

多看看面試題也能夠讓你快速瞭解自己的能力和短缺的地方哦~

本篇部落格會持續更新,也希望大家多多提供一些面試題哦~

1、基礎面試

(1) 自我介紹:emmm這個就不多講啦,把大概背景講清楚就可以

(2)自己做過的專案介紹:大家可以選擇最能夠體現自己能力的專案。可以從以下幾個方面來講:

a、簡單介紹下專案

b、自己在專案中的職責及出色業績(貢獻)

c、遇到了哪些問題,如何解決的(如果問題還沒解決,就還是不要說啦哈哈)

d、在這個專案中學到了什麼,比如業務與分析相結合、程式設計能力、團隊合作能力等

(3)解決問題最重要的能力是哪些?

(4)我在專案中總結了哪些技能點?

(5)你在資料探勘中的優勢?

(6)你理解什麼是資料探勘?

2、資料分析與挖掘相關問題(括號內表示被問到的次數哦,有些會提供參考答案,但還是希望大家自己多多研究喔)

以下序號是根據更新狀態來的,所以每個板塊的序號不對應

資料分析與挖掘方面:

(1)為什麼會產生過擬合,有哪些方法可以預防或克服過擬合?(2)

所謂過擬合(Overfit),是這樣一種現象:一個假設在訓練資料上能夠獲得比其他假設更好的擬合,但是在訓練資料外的資料集上卻不能很好的擬合數據。此時我們就叫這個假設出現了overfit的現象。
過擬合產生的原因:出現這種現象的主要原因是訓練資料中存在噪音或者訓練資料太少。
解決方法:
1、 增大資料量
2、 減少feature個數(人工定義留多少個feature或者演算法選取這些feature)
3、 正則化(留下所有的feature,但對於部分feature定義其parameter非常小)
4、 交叉驗證,重取樣評價模型效能,K折交叉驗證
5、保留一個驗證資料集檢驗

(2)無監督和有監督演算法的區別?

監督學習(supervised learning):通過已有的訓練樣本(即已知資料以及其對應的輸出)來訓練,從而得到一個最優模型,再利用這個模型將所有新的資料樣本對映為相應的輸出結果,對輸出結果進行簡單的判斷從而實現分類的目的,那麼這個最優模型也就具有了對未知資料進行分類的能力。包括所有的迴歸演算法分類演算法,比如線性迴歸、決策樹、KNN、SVM等
無監督學習(unsupervised learning):我們事先沒有任何訓練資料樣本,需要直接對資料進行建模。包括所有的聚類演算法,比如k-means 、PCA、 GMM等

(3)tree-base模型是否瞭解,決策樹和隨機森林區別是什麼,樹節點的分裂都有哪些策略(即節點的選擇)

直接說隨機森林是很多棵決策樹組成的,一定程度上能避免過擬合問題。
樹節點分裂:ID3 : 以資訊增益大小來建立。 
- C4.5 : 以資訊增益率大小來建立。 
- CART : 以基尼係數大小來建立。
決策樹的資料最好是離散型的吧?
ID3和C4.5是分型別決策樹,只處理離散型的,CART是分類迴歸都可以做的決策樹,支援所有型別

(7)tf-idf的公式

TFIDF實際上是:TF * IDF
詞頻(term frequency,TF)指的是某一個給定的詞語在該檔案中出現的頻率。
逆向檔案頻率(inverse document frequency,IDF)是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總檔案數目除以包含該詞語之檔案的數目。
這邊的例子以上述的數學公式來計算。詞頻 (TF) 是一詞語出現的次數除以該檔案的總詞語數。假如一篇檔案的總詞語數是100個,而詞語“母牛”出現了3次,那麼“母牛”一詞在該檔案中的詞頻就是3/100=0.03。一個計算檔案頻率 (IDF) 的方法是檔案集裡包含的檔案總數除以測定有多少份檔案出現過“母牛”一詞。所以,如果“母牛”一詞在1,000份檔案出現過,而檔案總數是10,000,000份的話,其逆向檔案頻率就是 lg10,000,000 / 1,000)=4。最後的TF-IDF的分數為0.03 * 4=0.12。

(8)維度怎麼擴充套件?

比如時間,那我可能取分段區間。可能單取年份,可能取距離當今多久

(9)特徵怎麼選擇?

確定方差最大化,或者通過分類,尋找特徵差異最大化。其他就是有具體看業務,要跟業務相結合,有統計性的(比如用tfidf轉換行為軌跡),有直接性的(教育、性別等)

(11)分析原因,某產品6月份的平均日活率比7月多很多,請問你會從哪幾方面分析?

回答 思路+方法(以某個信用app為例)

1、活動原因

1)分析參與活動的使用者的後續行為

2)分析未參與活動的使用者的同一時間的行為

3)對比以上兩資料趨勢,如果發現(1)和(2)有明顯不同的趨勢(如1驟降),那可能是活動的原因

2、功能改版

1)與往期用量對比

3、當期貸款需求變化(不好定,需要專業分析)

4、歷史同期趨勢對比(多個因素組合,可能說服力不強,但是大致可以看下趨勢)

(12)隨機森林裡面用的哪種決策樹?

引數可選gini或者entropy,不用c4.5,因為會剪枝,隨機森林不需要剪枝
https://blog.csdn.net/zhixiongzhao/article/details/72487284

(18)對資料分析中關鍵指標的定義?

我回答:可解釋的指標都是可以的。比如:使用者網站點選率,可以定義為單天的點選次數,也可以定義為一個月的平均點選次數,關鍵看可解釋業務性

(23)邏輯迴歸與線性迴歸的區別?

邏輯迴歸:迭代求解

線性迴歸:直接求解

(24)機器學習是方法,資料探勘是應用

(27)最大似然估計和最小二乘法的區別

(28)假設一個房間有5個嬰兒,性別2男3女,現在加入一個性別未知的嬰兒。此時從這6個嬰兒中,隨機抽取一個,發現是男孩子。問後來加入嬰兒性別是男孩子的概率多大?0.6

具體解題步驟之後會補上哦

(29)例如:一座別墅在過去的 20 年裡一共發生過 2 次被盜,別墅的主人有一條狗,狗平均每週晚上叫 3 次,在盜賊入侵時狗叫的概率被估計為 0.9,問題是:在狗叫的時候發生入侵的概率是多少?貝葉斯公式P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可變形為:P(B|A) = P(A|B)*P(B) / P(A)。

我們假設 A 事件為狗在晚上叫,B 為盜賊入侵,則以天為單位統計,P(A) = 3/7,P(B) = 2/(20*365) = 2/7300,P(A|B) = 0.9,按照公式很容易得出結果:P(B|A) = 0.9*(2/7300) / (3/7) = 0.00058

(30)採用EM演算法求解的模型有哪些?為什麼不用牛頓法或者梯度下降法?

一般有混合高斯、協同過濾、k-means。演算法一定會收斂,但是可能會收斂到區域性最優。求和的項數會隨著隱變數的數目指數上升,會給梯度計算帶來麻煩。EM演算法是一種非梯度優化演算法。

(31)用EM演算法推導解釋K-means

k-means演算法是高斯混合聚類在混合成分方差相等,且每個樣本僅指派一個混合成分時候的特例。k-means演算法與EM演算法的關係是這樣的:
· k-means是兩個步驟交替進行:確定中心點,對每個樣本選擇最近中心點--> E步和M步。
· E步中將每個點選擇最近的類優化目標函式,分給中心距它最近的類(硬分配),可以看成是EM演算法中E步(軟分配)的近似。
· M步中更新每個類的中心點,可以認為是在「各類分佈均為單位方差的高斯分佈」的假設下,最大化似然值; 

(32)如何進行特徵選擇?

(33)SVM和LR的區別

資料庫方面:

(6)有什麼sql調優的手段,瞭解多少

索引、條件先後等等,具體可自行百度sql調優方法

(10)sql,多個班級,取不同班級的每個班級的前3名(3次)

sql是rownumber:

select * from

(select row_number() over (partition by class order by score desc) 排名,* from sc) t

where 排名<=3 order by class asc,score desc

mysql用定義變數的方式:

SELECT * from (

SELECT @x:=if([email protected],@x+1,1) rn,@y:= b.cla , b.* from 
(SELECT @x:=0,@y:='' )a
JOIN
(SELECT * from class order by cla,grade desc )b ) d where d.rn<4

(13)資料庫時間轉換函式

dataformat是時間轉字串   unix_timestamp時間轉時間戳  str_to_date字串轉時間   unix_timestamp字串轉時間戳

(14)當出現數據重複時,用最簡單的方法查詢出哪些資料重複

資料量小時,group by count(1)大於1的
資料量大時,用rownumber(針對sql)

(15)什麼情況下索引會失效,假設欄位A加了索引

只要索引的欄位A不是  A >,<,=之類的,都會失效。比如兩個欄位 A 和 B,A上有索引,查詢條件如果是 where A = < > XXX就不會失效,即失效的意思是不用索引,不是異常等問題。當然,還有別的,,,比如索引不能這麼寫  where B = xxx and A = 0,因為索引欄位要優先被查詢。(只有  [><]?= 這種模式)
而且>和<也只能在樹索引等有序索引上起作用,如果索引是hash索引,就只能用=

(16)三張表,查詢部門薪水最高的?

 #方法一
SELECT dname,sum(salary) s from (
SELECT a.*,b.salary from (
SELECT n.id,n.name,d.dname from ntable n ,dtable d where n.dpid = d.did  )a,stable b where a.id = b.id)c GROUP BY dname ORDER BY s desc
#方法二 left join 
SELECT dname,sum(salary) s from (
SELECT n.id,n.name,d.dname,s.salary from ntable n LEFT JOIN dtable d on n.dpid = d.did LEFT JOIN stable s on n.id = s.id) 
a GROUP BY dname ORDER BY s desc
或者
SELECT d.dname,sum(s.salary)s from ntable n LEFT JOIN dtable d on n.dpid = d.did LEFT JOIN stable s on n.id = s.id 
GROUP BY d.dname ORDER BY s desc
#方法三  inner join
SELECT d.dname,sum(s.salary) s FROM (ntable n INNER JOIN dtable d ON n.dpid =d.did) INNER JOIN stable s ON n.id=s.id GROUP BY d.dname ORDER BY s desc
#方法四 join
SELECT d.dname,sum(s.salary) s FROM (ntable n  JOIN dtable d ON n.dpid =d.did)  JOIN stable s ON n.id=s.id GROUP BY d.dname ORDER BY s desc

(19)mysql 關於join的用法與區別(left join right join 等)

舉個例子說明區別就可以

(20)主鍵重複插入更新replace into 或者on duplicate key update

https://www.cnblogs.com/chenmh/p/5392540.html

(21)資料庫的外建的作用是什麼?

聯表查詢

(22)什麼是左連線,右連線?

Left join  right join,具體可自行百度

數倉方面:

(17)數倉的過程,瞭解數倉嗎?數倉用什麼搭建的?(2次)

關於數倉的問題,之後還會有個專題詳解哦

(25)Etl的緩慢資料維

資料開發方面:

(4)有序陣列查詢用什麼方法?

二分查詢,時間複雜度log2n,(是以2為底,n的對數)

(5)listtuple的區別

List是可變物件,tuple是不可變,tuple的效能好,效率高

(26)為什麼要使用裝飾器


相關推薦

資料分析相關試題親身經歷持續更新

以下大多數都是博主或者博主同事經歷過的面試題喲~關於工作內容的就不寫啦,一些基礎面試題跟大家分享下多看看面試題也能夠讓你快速瞭解自己的能力和短缺的地方哦~本篇部落格會持續更新,也希望大家多多提供一些面試題哦~1、基礎面試(1) 自我介紹:emmm這個就不多講啦,把大概背景講清

hibernate相關試題不看後悔一看必懂

概述 hibernate框架應用在dao層,,hibernate的底層程式碼是jdbc,它是一個開源的輕量級的框架. hibernate通過orm思想對資料庫進行crud操作.orm中文翻譯過來就是物件關係對映,它讓實體類(就是通常所說的pojo)和資料庫表對應,讓實體類的欄位和表裡的欄

資料十大經典演算法詳解

                                                       資料探勘十大經典演算法  一、 C4.5 C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3 演算法.   C4.5演算法繼承了ID3演算

堆疊相關試題詳解

1. 實現一個棧,要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)時間複雜度為O(1)。 分析:設計兩個棧,一個棧用來push 、pop操作,另一個棧用來儲存當前最小值Min。當push元素小於等於Min棧頂元素時,將其壓入Min棧頂,當pop元素等於M

資料之關聯規則挖掘Apriori演算法

一、概述本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法(Apriori演算法)。主要介紹關聯規則的基本概念、Apriori演算法原理和Apriori演算法例項,文章末尾處附加Apriori演算法源程式。二、關聯規則挖掘的基本概念關聯規則挖掘發現大量資料中項集之間有趣的關聯

貝葉斯網路機器學習系列持續更新~

在說貝葉斯規則(Bayes rule)和將貝葉斯規則用於圖模型之前,先讓大家瞭解下機器學習的四個正規化(paradigms),也可以理解為四個流派; 連線主義(connectionist):用現在比較流行的說法就是神經網路,現在用到的工具有Tensorflow

Python資料實戰——相關分析

繼續補以前拉下的債~~~一、相關性指標的研究意義1.1相關係數(Correlation coefficient): 相關係數是變數間關聯程度的最基本測度之一1.2相關分析(Correlation ana

每天五個java相關試題8--spring篇

ioc 簡單 組件 print 提交數據 常常 spring容器 效果 用戶 首先呢,假設有從事前端開發的大神或者準備從事前端開發的小夥伴無意看到我這篇博客看到這段文字歡迎加我的QQ:【 845415745 】。即將走入社會的菜鳥大學生有關於前端開發的職

資料導論》讀書筆記—— 緒論

書名:資料探勘導論(Introduction to Data Mining) 作者: Pang-Ning Tan / Michael Steinbach / Vipin Kumar 出版社: 人民郵電出版社 譯者: 範明 / 範巨集建 出版年: 2010-12-10 ISBN: 978711524100

python資料分析微信朋友圈

參考https://blog.csdn.net/qinyuanpei/article/details/79360703,基於python3.6實現微信朋友圈性別、地區、個性簽名、頭像四個維度的分析。 我的GitHub專案地址https://github.com/sanciyuan/wechat_

近五年城市軌跡資料相關文章整理

Xiaoyu Sun 、Zhou Huang 於2018年發表的“Building a model-based personalised recommendation approach for tourist attractions from geotagged social med

python資料實戰筆記——文字挖掘1:語料庫構建

什麼是文字挖掘 ?   文字挖掘是抽取有效、新穎、有用、可理解的、散佈在文字檔案中的有價值知識,並且利用這些知識更好地組織資訊的過程。 一、搭建語料庫 語料庫:要進行文字分析的所有文件的集合。 需要用到的模組:os、os.path、codecs、pandas 程

python資料實戰筆記——文字挖掘4:詞雲繪製

概念: 詞雲:詞雲是指對文字中詞頻較高的分詞,給予視覺上的突出,形成“關鍵詞渲染”,從而過濾掉大量的文字資訊,使瀏覽者一眼掃過就可以領略文字的主旨。 需要用到的包:wordcloud、matplotlib wordcloud包下載地址:http://www.l

資料分析的必要性

資料探勘一般是指從大量的資料中通過演算法搜尋隱藏於其中資訊的過程。資料探勘本質上像是機器學習和人工智慧的基礎,它的主要目的是從各種各樣的資料來源中,提取出超集的資訊,然後將這些資訊合併讓你發現你從來沒有想到過的模式和內在關係。這就意味著,資料探勘不是一種用來證明假說的方法,而是用來構建各種各樣的假說

python資料入門與實踐--------電離層Ionosphere, scikit-learn估計器K近鄰分類器交叉檢驗設定引數

ionosphere.data下載地址:http://archive.ics.uci.edu/ml/machine-learning-databases/ionosphere/ 原始碼及相關資料下載  https://github.com/xxg1413/MachineLea

資料基礎導論學習筆記

第五章 分類 其他分類 貝葉斯分類器 貝葉斯定理:把類的先驗知識和從資料中收集的新證據相結合的統計原理。 公式: P(Y|X)=P(X|Y)*P(Y)/P(X) X是屬性集,Y是類變數 把X和Y看成隨機變數,用P(Y|X)以概率的方式捕捉二者之間的關係,這個條件

資料分析工具集

大資料時代需要大資料探勘,我習慣把大資料分成四個領域:資料科學、網路科學、空間地理科學和視覺化技術。 最近的主要興趣在空間地理領域,學習如何獲取POI,Polygon,經緯度,空間匹配演算法和視覺化,一個全新領域有帶來諸多大資料分析工具的思考和整合。 恰巧看到一篇國外部落格列舉了大資料領域的

資料社群整理的Linux運維筆試試題47題

Linux作業系統知識 1. Linux開機啟動流程詳細步驟是什麼?忘記密碼如何破解? 2. 企業中Linux資料庫伺服器做raid幾,你們原來公司的資料庫伺服器大小?RAID 0 1 5 10區別,系統分割槽標準是什麼? 3. 某一天突然發現Linux系統檔案只讀,該怎麼辦呢?寫一下完整操作步驟,

網易遊戲2016校園招聘資料研究員線上筆試題和答案

      剛做完網易線上筆試題,感觸最深的地方是,雖然題目形式和ACM題目相似,但是內容更偏向於實際應用。總共有四個題目,第一個題目屬於字串匹配型別,難度較低,第二個題目是模擬SQL語句的輸出,第三個題目是KNN演算法,第四個題目是貝葉斯演算法。題目偏基礎,演算法思想很

資料結構試題含答案

1.棧和佇列的共同特點是(只允許在端點處插入和刪除元素) 4.棧通常採用的兩種儲存結構是(線性儲存結構和連結串列儲存結構) 5.下列關於棧的敘述正確的是(D)      A.棧是非線性結構B.棧是一種樹狀結構C.棧具有先進先出的特徵D.棧有後進先出的特徵 6.連結串列不具有的特點是(B)A.不必事先估計儲存