數據分析筆試題(網易,阿里,京東...)

網易

https://blog.csdn.net/weixin_44915703/article/details/97245622
https://www.nowcoder.com/discuss/211212?type=post&order=time&pos=&page=1
https://www.nowcoder.com/discuss/211215?type=all&order=time&pos=&page=1
1. 推薦系統評價指標和實驗方法
a. 評價指標:
1)用戶滿意度:只能通過用戶調查或在線實驗獲得。
對於用戶調查方式,用調查問卷方式;對於在線實驗方式,主要通過一些對用戶行爲的統計得到。
對於用戶行爲,可分爲顯性和隱性之分。若用戶購買了推薦的商品,則說明在一定程度上滿意,可用購買率度量。還可用用戶反饋界面收集,通過統計兩種按鈕的單擊情況度量。更一般的情況下,用點擊率、用戶停留時間和轉化率等指標度量。

點擊率: 指您的廣告所獲得的點擊次數除以其展示次數所得的比值。
轉化率: 指在一個統計週期內,完成轉化行爲的次數佔推廣信息總點擊次數的比率。分爲廣告轉換率和網站轉換率。對於廣告轉換率,轉換指的是網民的身份產生轉變的標誌,如網民從普通瀏覽者升級爲註冊用戶或購買用戶等。轉化標誌一般指某些特定頁面,如註冊成功頁、購買成功頁、下載成功頁等,這些頁面的瀏覽量稱爲轉化量。廣告用戶的轉化量與廣告到達量的比值稱爲廣告轉化率。
2 ) 預測準確度:離線實驗測評
表示一個推薦算法預測用戶行爲的能力。如果是 評分預測模型(即打分)一般用RMSE(均方根誤差)和MAE(平均絕對誤差)計算。如果是Top N推薦(即個性化推薦),一般用準確率(precision)和召回率(recall)計算。

準確率(accuracy)= 預測對的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%
精確率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 2/3
3 )多樣性
滿足用戶廣泛的興趣需求。描述了推薦列表中物品兩兩之間的不相似性。多樣性和相似性對應。
b. 實驗方法:
1)離線實驗
需要有一個日誌數據集,不需一個實際的系統來供它實驗。
優點:不需真實用戶參與,直接快速、方便,可測試大量算法。
缺點:無法獲得很多商業上關注的指標,如點擊率、轉化率等。
2 ) 用戶調查
在上線測試前需做一次用戶調查。
優點:得到與用戶主觀感受有關的指標,相對在線實驗風險很低,出現錯誤後很容易彌補。
缺點:調查成本很高,需用戶花大量時間完成一個任務並回答相關問題。需花錢僱傭測試用戶,大多數情況下很難進行大規模的用戶調查,得出的結果大多沒有統計意義。
3)在線實驗
在離線實驗和用戶調查後將推薦系統上線做AB測試,將新系統和舊算法進行比較。將用戶隨機分成幾組,對不同組用戶採用不同算法,比較不同算法性能。
優點:可公平獲得不同算法實際在線時的性能指標,包括商業上關注的指標
缺點:週期較長,需進行長期實驗才能得到可靠的結果。故只測試在離線實驗和用戶調查中表現較好的算法。

一般來說,一個新推薦算法上線要完成上述的3個實驗。首先,須通過離線實驗證明它在很多離線指標上優於現有的算法;然後,通過用戶調查確定它的用戶滿意度不低於現有的算法;最後,通過在線AB測試確定它在我們關心的指標上優於現有的算法,指標包括準確度、覆蓋度、新穎度、驚喜度、信任度、透明度等。
A/B測試: A/B測試是一種流行的網頁優化方法,可以用於增加轉化率註冊率等網頁指標。簡單來說,就是爲同一個目標制定兩個方案(比如兩個頁面),將產品的用戶流量分割成 A/B 兩組,一組試驗組,一組對照組,兩組用戶特點類似,並且同時運行。試驗運行一段時間後分別統計兩組用戶的表現,再將數據結果進行對比,就可以科學的幫助決策。比如在這個例子裏,50%用戶看到 A 版本頁面,50%用戶看到 B 版本頁面,結果 A 版本用戶轉化率 23%,高於 B 版本的 11%,在試驗流量足夠大的情況下,我們就可以判定 A 版本勝出,然後將 A 版本頁面推送給所有的用戶。

2. 電商推薦系統冷啓動期與高峯期的數據分析有什麼不同,可舉例說明。
a. 冷啓動該問題主要分三類:
1 ) 用戶冷啓動:如何給新用戶做個性化推薦。
2 ) 物品冷啓動:如何將新的物品推薦給可能對它感興趣的用戶這一問題。
3 ) 系統冷啓動:如何在一個新開發的網站上設計個性化推薦系統。
b. 冷啓動問題的解決方案:
1 ) 提供非個性化的推薦:熱門排行榜,當用戶數據收集到一定的時候,再切換爲個性化推薦
2 ) 利用用戶註冊時提供的年齡、性別等數據做粗粒度的個性化,做個用戶畫像,基於用戶的登錄信息,利用歷史特徵下某種特徵喜歡某種物品的喜好程度進行個性化推薦。
3 ) 利用用戶的社交網絡帳號登錄,導入用戶在社交網站上的好友信息,然後給用戶推薦其好友喜歡的物品。
3. 事務與鎖機制有什麼關係?
事務的隔離級別通過鎖的機制來實現。
https://blog.csdn.net/hackxiaoF/article/details/50264939
4. 從數字集合{1,2,3,4,… ,20}中選出3個數字的子集,如果不允許兩個相連的數字出現在同一集合中,那麼能夠形成多少個這種子集?
此問題等價於從20本書排列好的書中取出3本不相鄰的書,等價於想17本排列好的書中插入3本不想鄰的書,利用插空法的思想爲C18,3。
5. 將4個不一樣的球隨機放入5個杯子中,則杯子中球的最大個數爲3的概率是?
從4個球裏取出三個放進5個杯子中的任意一個,剩下的一個球放入剩下的四個杯子裏的任意一個
(C43 * C51* C41)/5^4
6. 已知y=f(x)的均差f(x0, x1, x2)=14/3,f(x1, x2, x3)=15/3,f(x2,x3,x4)=91/15,f(x0, x2, x3)=18/3,那麼均差f(x4, x2, x3)=( 91/15)
(對稱性)差商與插值節點的順序無關。
在這裏插入圖片描述
7. 一個快遞公司對同一年齡段的員工,進行汽車,三輪車,二輪車平均送件量的比較,結果給出sig.=0.034,說明。
按照0.05顯著性水平,拒絕H0,說明三類交通工具送件量有顯著差異。
8. 小明在一次班幹部二人競選中,支持率爲百分之五十五,而置信水平0.95以上的置信區間爲百分之五十到百分之六十,請問小明未當選的可能性有可能是(3%)
95%落在百分之五十到六十,落在百分之50以下和百分之60以上的概率分別爲2.5%,所以不當選的概率(落在百分之50以下)爲2.5%約等於3%。
9. 銷售員需統計以下公式所示數據=SUM(SUMIF(C2:C9,{"<10","<6"})*{1,-1}), 請問,該公式返回值爲14
在這裏插入圖片描述
C2:C9按照"<10","<6"條件分別求和,再按照1,-1求和,即23-9=14。
小於10的乘以1,小於6的乘以-1,再求和。
(4+5+6+8)*1+(4+5)*1=14
10. SQL語句執行的順序是
1.FROM
2.JOIN ON
3.WHERE
4.GROUP BY
5.HAVING
6.SELECT
7.ORDER BY
11. 設隨機變量X和Y都服從正態分佈,且它們不相關,則( X與Y未必獨立)
補充:只有當(X,Y) 服從二維正態分佈時,X與Y不相關⇔X與Y獨立
若X和Y都服從正態分佈且相互獨立,則(X,Y)服從二維正態分佈
12. 某地區每個人的年收入是右偏的,均值爲5000元,標準差爲1200元。隨機抽取900人並記錄他們的年收入,則樣本均值的分佈爲(近似正態分佈,均值爲5000元,標準差爲40元)
中心極限定理,樣本量N只要越來越大,抽樣樣本n的樣本均值會趨近於正態分佈,並且這個正態分佈以u爲均值,sigma^2/n爲方差。

左偏分佈(負偏態)中:mean(平均數)<median(中位數)<mode(衆數)。
右偏分佈(正偏態)中:mode(衆數)<median(中位數)<mean(平均數)。
左右偏態的定義:
https://baike.baidu.com/item/正偏態/6639492?fr=aladdin
13. 抽取30個手機用戶,計算出他們通話時間的方差。要用樣本方差推斷總體方差,假定前提是所有用戶的通話時間應服從(正態分佈)
一個總體的方差的區間估計其前提條件是總體服從正態分佈。用卡方分佈構造總體方差的置信區間。
14. 命題A:隨機變量X和Y獨立,命題B:隨機變量X和Y不相關。A是B的
__充分不必要__條件。

15. 假定樹根的深度爲0,則高度爲6的二叉樹最多有___64___個葉節點。
一棵樹當中沒有子結點(即度爲0)的結點稱爲葉子結點。所以2^6=64。
注:某節點的深度是指從根節點到該節點的最長簡單路徑邊的條數,而高度是指從該節點到葉子節點的最長簡單路徑邊的條數。樹的高度和深度是相等的。最深的葉結點的深度就是樹的深度。
在這裏插入圖片描述
假定樹深度爲0,上圖中二叉樹的高度和深度爲3
16. 已知一棵樹具有10個節點,且度爲4,根節點的高度爲1,那麼(該樹的高度至多是7)
X的子女數目稱爲X的度。
17. 對於以下關鍵字{55,26,33,80,70,90,6,30,40,20},增量取5的希爾排序的第一趟的結果是:(55,6,30,40,20,90,26,33,80,70)
{55,26,33,80,70,90,6,30,40,20} 增量爲5, 從55開始每隔5個距離取值分爲1組,共分爲5組,分別爲{55,90} {26,6}{33,30}{80,40}{70,20}
先組內排序取最小值:55,6,30,40,20,後取剩餘值:90,26,33,80,70。
18. 設二叉排序樹中關鍵字由1到999的整數構成,現要查找關鍵字爲321的節點,下面關鍵字序列中,不可能出現在二叉排序樹上的查找序列是(888、231、911、244、898、256、362、366)
補:
1) 二叉排序樹的特點就是:
A. 若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值
B. 若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值
C. 左、右子樹也分別爲二叉排序樹
2 ) 看B選項的最後兩個數,321 和 362 比較以後,明顯321< 362 ,必然會去尋找362的左子樹,此時應該去尋找362的左子樹,但是366大於362肯定不是左子樹。
3)二叉排序樹的算法就是
首先將待查關鍵字key與根節點關鍵字t進行比較:
A.如果key = t, 則返回根節點指針。
B.如果key < t, 則進一步查找左子樹。
C.如果key > t, 則進一步查找右子樹。
19. 用13的瓷磚密鋪320的地板有幾種方式?(1278)
一共可能有2,5,8,11,14,17塊磚頭豎着放((20-2)%3==0其餘數字同理。)
豎着放代表長度爲3的邊剛好接觸。A6,6代表6!也等於6的階乘
當有2塊豎着放,一共有8(2+(20-2)/3=8)塊轉,其中6塊爲豎着放,2塊橫着。A8,8/(A6,6A2,2)=28;
當有5塊豎着放,一共有10塊轉,其中5塊爲豎着放,5塊橫着。A10,10/(A5,5
A5,5)=252;
當有8塊豎着放,一共有12塊轉,其中8塊爲豎着放,4塊橫着。A12,12/(A8,8A4,4)=495;
當有11塊豎着放,一共有14塊轉,A14,14/(A11,11
A3,3)=364;
當有14塊豎着放,一共有16塊轉,A16,16/(A14,14A2,2)=120;
當有17塊豎着放,一共有18塊轉,A18,18/(A17,17
A1,1)=18;
當有20塊豎着放,結果爲1;
以上加總爲1278;
令f(n)爲3n的鋪法,那麼先取出一塊:如果這一塊豎着鋪,則3n變成了3*(n-1),也就是f(n-1);如果這一塊橫着普,而又因爲只有三行,所以下面的兩塊也只能橫着鋪,則3n變成了3(n-3)。綜上可以得到f(n)=f(n-1) + f(n-3)。
遞推獲得f(20)即可。
20. 有20個人去看電影,電影票50元。其中只有10個人有50元錢,另外10個人都只有一張面值100元的紙幣,電影院沒有其他鈔票可以找零,問有多少種找零的方法?
卡特蘭數問題,關於這個瞭解甚少就做一個基本介紹,其實這裏如果用卡特蘭數來做還得有一個條件就是且一人只買一張票,也就是說每一個有50塊錢的人要先去付錢,然後再是拿着100塊錢的人去付錢,然後這裏我們看成是出棧和入棧操作,把出棧次序和進棧次序構成40個數字的序列(進表示收取50元可用1表示。出表示收取100元,找零50元,可用0表示。),因爲要進棧和出棧都算在這個序列裏面,然後就可以用卡特蘭數來求解了,我們這裏可以直接用公式C(n,2n)/(n+1)=C(10,20)/11=16796,這個公式是卡特蘭數的一般公式。
https://blog.csdn.net/Hackbuteer1/article/details/7450250

  1. 考拉海購始終以用戶爲中心,爲用戶提供高品質的商品,幫助用戶“用更少的錢,過更好的生活”。爲了滿足不同用戶的需求(比如新客戶的要求可能跟老客戶不同,流失客戶需要特殊的關懷) ,請你設計一套具體的方案,合理劃分不同用戶,並能給出相應的建議。
    1、新用戶——引導性信息收集
    任何電商品牌都有一套屬於自己的推薦算法,但是對於新用戶和新商品這種冷啓動問題一般還是沒有很好的解決方法。實際上,新商品有很多性能參數,可以根據相近商品進行預測,而新用戶對於算法來說是一個完全空白的樣本,不利於探測客戶需求,所以建議在新用戶註冊時設計一套能夠捕捉購買方向和趨勢的問卷,並配合問卷選擇發放一些對應的優惠券,這樣一方面可以引導新用戶在情願的情況下給出真是的購買意願,另一方面也能夠在最快的時間內捕捉到該用戶的一些信息,再一方面促進了用戶購買商品的機率。
    2、規律用戶——捕捉規律行爲
    大部分用戶的購買行爲存在週期性,比如優惠週期,使用週期,系統可以根據用戶在過去的購買和瀏覽行爲探索用戶購買週期,然後預測下一個購買週期,並且發送優惠信息,這樣既讓用戶享受到了優惠,又實現了營銷。
    3、流失用戶——捕捉細節
    萬事皆有原因,一個用戶流失要麼是在這裏喫過虧,要麼是覺得買不到想要的,要麼是別的平臺更便宜,無非這三大類原因,所以應該捕捉用戶最後的瀏覽信息,瀏覽表明有購買意願,針對這些商品基於一些優惠,吸引用戶再次瀏覽,根據一次次吸引瀏覽來判斷不購買原因,再對症下藥。
    注:要區分流失用戶和規律用戶,這兩類行爲存在很大的相似性,但是後者其實並不需要太多優惠或行爲進行挽留。

  2. bootstrap 是什麼原理—有放回的從N個樣本中抽樣n個。
    bootstrap方法是從大小爲n的原始訓練數據集中隨機選擇n個樣本點組成一個新的訓練集,這個選擇過程獨立重複B次,然後用這B個數據集對模型統計量進行估計(如均值、方差等)。由於原始數據集的大小就是n,所以這B個新的訓練集中不可避免的會存在重複的樣本。

  3. 用戶消費表中時間格式是“年-月-日-時-分-秒”,在MySQL中獲取“年-月-日”的函數是(A)
    A DATE --返回日期
    B GETDATE —返回日期和時間
    C DAY()–1、day(date_expression) 返回date_expression中的日期值
    D GETDAY()—無此函數

  4. 假設使用較短的時間在一個足夠大的數據集上訓練決策樹,可以採用什麼辦法(C)
    A 增加樹的深度
    B 增加學習率
    C減少樹的深度
    D 減少樹的數量
    解析: 增加樹的深度, 會導致所有節點不斷分裂, 直到葉子節點是純的爲止. 所以, 增加深度, 會延長訓練時間.決策樹沒有學習率參數可以調. (不像集成學習和其它有步長的學習方法)決策樹只有一棵樹, 不是隨機森林。

  5. 需要刪除表user的數據,但是保留表結構且不釋放空間,以下哪個語句可以實現(D)
    A DELETE TABLE user
    B REMOVE TABLE user
    C DROP TABLE user
    D TRUNCATE TABLE user
    在SQL中,能快速刪除數據表中所有記錄,但保留數據表結構的語句是Truncate。
    使用Truncate刪除所有行,該語句總是比不帶條件的DELETE語句要快,因爲DELETE語句要記錄對每行的刪除操作,而Truncate 語句只記錄整個數據頁的釋放。Truncate語句立即釋放由該表的數據和索引佔用的所有空間,所有索引的分發頁也將釋放。
    Delete 刪除 表中的行
    DROP刪除整個表,包括表結構和表定義
    REMOVE沒有這個查詢定義

  6. 某抽卡公司出示出SSR的概率是0.1,用戶畫符500次,得到45個符,問在5%的顯著水平下,能夠認爲遊戲商在謊報概率嗎?(不能)
    對於統計檢驗來說,這裏設置的是a=0.05, Ho 假設如果計算的概率p>a大於顯著水平,即是沒有足夠的證據去拒絕原假設,即尚不能拒絕H0(原假設爲某抽卡公司出示出SSR的概率是0.1), 如果p<a,即可以拒絕原假設H0。設X爲用戶得到的字符數(檢驗統計量), 根據原假設得到X~B(500, 0.1), P(X<=45) = C500,45(0.1)^45(0.9) ^(500-45) = 0.255> 0.05, 故接受原假設。二項分佈式的計算如下。

from scipy.stats import binom

pi = 0.1; n = 500
k = 45; m = 50

# 求成功次數爲i的概率
pk = 0
for i in range(n):
    p = binom( n, pi ).pmf( i )
    if i <= k:
        pk += p
        print( 'P(x = {0:d}) = {1:.4f}'.format( i , p ))

# 求成功小於k次的概率
print('-'*20)
p = binom( n, pi ).cdf( k )
print( 'P(x <= {0:d}) = {1:.4f}'.format( k , p ))
print( '比較累加值:', pk)
# 求成功大於k次,小於m次的概率
print('-'*20)
p = binom( n, pi ).cdf( m ) - binom( n, pi ).cdf( k )
print( 'P({0:d} < x <= {1:d}) = {2:.4f}'.format( k , m, p ))

補: 假設檢驗: 依據一定的假設條件由樣本推斷總體的一種方法。
假設檢驗的思想: 進行假設檢驗時,假設原假設爲真;如果有足夠的證據反駁原假設,則拒絕原假設,接受備則假設。
如何理解顯著這個詞呢? 其實就是有足夠強的證據的意思。例如:這個結果顯著,翻譯成人話,就是我們有足夠強的證據表明這個結果超過了容錯範圍,所以我們要reject掉原假設。
深入淺出統計學中的假設檢驗:https://zhuanlan.zhihu.com/p/28177571
二項分佈:https://www.jianshu.com/p/6dac4fcfa629
假設檢驗詳解: https://blog.csdn.net/andy_shenzl/article/details/81453509

  1. 某服務器請求分配到集羣A,B, C, D 進行處理響應的概率分別是10%,20%,30%,和40%, 測試各集羣的穩定性分別是90%, 93%,99%,和99.9%,現在該服務器請求處理失敗,且已排除穩定性以外的問題,那麼最有可能在處理該服務集羣的是(B)
    令L代表服務器請求處理失敗,A,B,C,D分別代表對應的集羣處理響應。
    則有P(A)=10%,P(B)=20%,P©=30%,P(D)=40%
    P(L|A)=10%,P(L|B)=7%,P(L|C)=1%,P(L|D)=0.1%
    題目要求P(X|L),知識點:全概率公式、貝葉斯公式;對於4個集羣而言,分母P(失敗)是恆定的,因此只需比較分子P(失敗|集羣=i)*P(集羣=i)的大小。
    X可取A,B,C,D,求其中的最大值。
    根據貝葉斯概率公式
    P(A|L)P(L)=P(L|A)P(A)=10% * 10%=0.01
    P(B|L)P(L)=P(L|B)P(B)=20% *7%=0.014
    P(C|L)P(L)=P(L|C)P (C )=0.003
    P(D|L)P(L)=P(L|D)P(D)=0.0004
    其中,P(L)雖然未知,但不用計算,即可比較大小,得P(B|L)最大
  2. 關於大數定理和中心極限定理 說法錯誤的是(B)
    A 大數定理和中心極限定理都是用來描述 獨立同分布的隨機變量的和的漸進表現
    B 它們描述的是在不同收斂速率之下的表現,大數定理的前提條件強一點
    C 利用大數定理可以用樣本均值估計總體分佈的均值
    D 中心極限定理描述的是某種形式的隨機變量之和的分佈
    大數定理說的是隨機現象平均結果的穩定性
    中心極限定理 論證隨機變量的極限分佈是正態分佈
    大數定理比中心極限定理寬鬆,中心極限條件強,結論更強
    29. 關於MySQL中數據類型的描述,以下錯誤的是(C)
    A VARCHAR 用於描述可變長度的非二進制字符串
    B DATETIME 和TIMESTAMP 是相同的數據類型,可以相互替換 √
    C 以“hh:mm:ss”格式存儲時間值的是DATETIME 數據類型 ×是TIME
    D TINYINT屬性只適合數字類型的數據
    30. 以下哪些機器學習模型沒有用到learning rate 學習率 作爲超參數(A)
    A 隨機森林
    B Adaboost
    C Gradient Boosting
    D lightGBM
    決策樹沒有參數可以調節
    只要使用了梯度下降法就會有學習率
    31. 遊戲中的武器攻擊值是60, 使用寶石可以增加攻擊值,如果是A有40%的概率打出暴擊,攻擊值增加一倍,是寶石B的話有20%的概率打出暴擊,攻擊值增加三倍,如果是C的話10% 攻擊值增加5倍, 各個事件均爲獨立事件,但是多個暴擊同時發生時,支取最高值, 這個數學期望是多少(139.68)
    40% 20% 10% 30%
    120 240 360
    E(x)= 600.60.8*0.9 + 120 * 0.4 * 0.8 * 0.9 + 240 * 0.2 * 0.9 + 360 * 0.1 = 139.68
  3. 對於二分類問題中樣本不平衡問題(負例較多),下面那個解決方案不適用(C)
    A 對訓練集的負樣本進行欠採樣
    B 直接基於原始數據集進行訓練 在預測的時候改變閾值
    C 對訓練集的正負比例進行升採樣
    D 對正例進行升採樣
    過抽樣: 過抽樣也叫做上採樣(over-sampling).這種方法通過增加分類中少數樣本的數量來實現樣本均衡。最直接的方法是簡單複製少數樣本形成多條記錄。比如正負比例爲1:10,那麼我們可以將正例複製9遍來達到正負比例1:1。但是這種方法的缺點就是如果樣本特徵少而可能導致過擬合的問題;經過改進的過抽樣方法通過在少數類中加入隨機噪聲、干擾數據或通過一定規則產生新的合成樣本,例如SMOTE算法。
    欠抽樣: 欠抽樣也叫做下采樣(under-sampling),這種方法通過減少分類中多數分類的樣本數量來實現樣本均衡,最直接的方法就是隨機的去掉一些多數類樣本來減小多數類的規模,缺點是會丟失多數類樣本中的一些重要信息。
    總而言之,過抽樣和欠抽樣更適合於大數據分佈不均衡的情況,尤其是第一種(過抽樣)應用更加廣泛。
  4. SQL 中 語句正確的執行順序是
    From—where—group by —having –order by –limit
  5. RNN 在特定的神經元給定任意輸入,得到的輸出是-0.001. 那麼RNN中隱藏層使用的激活函數可能是(B)
    A ReLu(0,x)
    B Tanh (-1,1)
    C Sigmoid–(0,1)
    D 其他都不是
    該激活函數可能是 tanh,因爲該函數的取值範圍是 (-1,1)。
  6. 在含有一個或者兩個均值的假設檢驗中要使用(t檢驗)。
  7. 貝葉斯分類利用以下哪種概率計算( 後驗概率)
  8. 假設使用邏輯迴歸進行 n 多類別分類,使用 One-vs-rest 分類法。下列說法正確的是(需要n個模型)
  9. 這是一樣表 table
    id title
    1 21
    2 21
    3 21,45,78
    4 47,21,23
    5 211,45,74
    6 34,321
    現在用sql語句查出來字段裏包含21的所有記錄怎麼辦?
    想321 還有 211 這樣的記錄不能要。
select *
from table
where title=21 or title like '%,21' or title like '%,21,%' or title like '21,%'
  1. 關於SQL 的優化,以下說法正確的是(AC)
    A select 子句 中儘量避免使用 *, 儘量列出需要查詢的字段
    B 大小表連接是,把大表寫入內存,再拼接小表
    C KEY鍵NULL值較多時,把 NULL賦值爲特定字符串
    D 進行去重時,使用DISTINCT比order by 效率更高

A 實際上,ORACLE在解析的過程中, 會將’*’ 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味着將耗費更多的時間。
B sql連接大小表在前在後的重要性(小表在前提高執行效率)。
C 答案不確定
D distinct方式就是兩兩對比,需要遍歷整個表。
group by分組類似先建立索引再查索引,所以兩者對比,小表destinct快,不用建索引。大表group by快。一般來說小表就算建索引,也不會慢到哪去,但是如果是TB級大表,遍歷簡直就是災難。
所以很多ORACLE項目都禁止使用distinct語句,全部要求替換成group by。

  1. 關於線性迴歸的描述,以下正確的是(BCE)
    A 基本假設包括隨機干擾項是均值爲0,方差爲1的標準正態分佈
    B 基本假設是包括隨機干擾是均值爲0的同方差正態分佈
    C 在違背基本假設是,普通最小二乘法不是是最佳線性無偏估計量
    D 在違背基本假設模型不再可以估計
    E 可以用DW檢驗殘差是否存在序列相關性
    F 多重共線性會使得參數估計值方差減小

A 一元線性迴歸的基本假設有
1)隨機誤差項是一個期望值或平均值爲0的隨機變量;
2)對於解釋變量的所有觀測值,隨機誤差項有相同的方差;
3)隨機誤差項彼此不相關;
4)解釋變量是確定性變量,不是隨機變量,與隨機誤差項彼此之間相互獨立;
5)解釋變量之間不存在精確的(完全的)線性關係,即解釋變量的樣本觀測值矩陣是滿秩矩陣;
6)隨機誤差項服從正態分佈
D 違背基本假設的計量經濟學模型還是可以估計的,只是不能使用普通最小二乘法進行估計。
E 杜賓-瓦特森(DW)檢驗,計量經濟,統計分析中常用的一種檢驗序列一階 自相關 最常用的方法。
補:
當存在異方差時,普通最小二乘法估計存在以下問題: 參數估計值雖然是無偏的,但不是最小方差線性無偏估計。
多重共線性的影響:
(1)完全共線性下參數估計量不存在
(2)近似共線性下OLS估計量非有效
多重共線性使參數估計值的方差增大,1/(1-r2)爲方差膨脹因子(Variance Inflation Factor, VIF)
(3)參數估計量經濟含義不合理
(4)變量的顯著性檢驗失去意義,可能將重要的解釋變量排除在模型之外
(5)模型的預測功能失效。變大的方差容易使區間預測的“區間”變大,使預測失去意義。

  1. 關於皮爾森係數,下列描述正確的是(ACD)
    A 皮爾森係數是描述變量線性相關的程度
    B 皮爾森係數越大,變量相關性越小
    C 相關係數只適用於線性相關關係
    D 皮爾森係數爲0,說明兩變量之間不存在線性相關關係
  2. 下列哪些數據分析方法可以對高維數據進行降維(ABCD)
    A LASSO
    B 主成分分析法
    C 聚類分析
    D 小波分析
  3. 下列算法中,可以使用神經網絡構造的是(CE)
    A KNN
    B 線性迴歸
    C 對數機率迴歸
    D 樸素貝葉斯
    E SVM
  4. 以下哪些語句屬於數據庫定義語言DDL(BD)
    A DROP
    B CREATE
    C ALTER
    D UPDATA
  5. 關於SQL語句的描述,以下說法正確的是(BCD)
    A DELETE FROM TABLE: 刪除表
    B DESC TABLE:查看數據庫表結構
    C UPDATA TABLE:更新數據庫表
    D INSERT INTO TABLE:向數據庫表插入新列
    A 可以在不刪除表的情況下刪除所有的行。這意味着表的結構、屬性和索引都是完整的:DELETE FROM table_name or DELETE * FROM table_name
  6. 以下哪些條件能夠判斷隨機變量是相互獨立的(AD)
    A 對任何實數x, y, 均有P{X<=x, Y<=y} = P{X<=x}{Y<=y}。
    B E(XY) = E(X)E(Y)
    C 對任何實數x, y, 聯合密度函數f(x, y) = fx(x)fy(y)
    D 對任何實數x, y, 聯合分佈函數F(x, y) = Fx(x)Fy(y)
  7. 下面哪種說法是正確的(AD)
    A R方是反映因變量的全部變異能通過迴歸關係被自變量解釋的比例
    B 如果R方變大,說明這個變量是顯著的
    C 如果R方變小,說明這個變量是不顯著的
    D 單獨觀察R方的變化,無法判斷這個變量是否顯著
  8. 某二叉查找樹的每個節點存放一個整數,中序遍歷該樹得到的序列爲3,4,5,則該樹的畫法有多少種情況?(5)
    分別以3,4,5爲根節點,按中序遍歷的規則逐個嘗試。
  9. 字符串有5個字符q,w,e,r,t,出現的頻率分別爲1,2,3,4,5,如果採用Huffman編碼對字符串編碼,則每個字符編碼的平均長度是(2.4)
    Huffman編碼後分別爲:q:000,w:001,e:01,r:10,t:11,平均編碼長度爲(3+3+2+2+2)/5=2.4。
    霍夫曼編碼的演算過程:
    (一)進行霍夫曼編碼前,我們先創建一個霍夫曼樹。
    1)將每個英文字母依照出現頻率由小排到大,最小在左,如Fig.1。
    2)每個字母都代表一個終端節點(葉節點),比較F.O.R.G.E.T六個字母中每個字母的出現頻率,將最小的兩個字母頻率相加合成一個新的節點。如圖所示,發現F與O的頻率最小,故相加2+3=5。
    3)比較5.R.G.E.T,發現R與G的頻率最小,故相加4+4=8。
    4)比較5.8.E.T,發現5與E的頻率最小,故相加5+5=10。
    5)比較8.10.T,發現8與T的頻率最小,故相加8+7=15。
    6)最後剩10.15,沒有可以比較的對象,相加10+15=25。
    最後產生的樹狀圖就是霍夫曼樹。
    (二)進行編碼
    1)給霍夫曼樹的所有左鏈接’0’與右鏈接’1’。
    2)從樹根至樹葉依序記錄所有字母的編碼。
    在這裏插入圖片描述
    在這裏插入圖片描述
  10. 下面關於排序的空間複雜度說法不正確的有()(N爲被排序數據的長度)
    插入排序的空間複雜度爲O(N)。
    正確答案:堆排序的空間複雜度爲O(1);冒泡排序的空間複雜度爲O(1);歸併排序的空間複雜度爲O(N);遞歸實現的快速排序的空間複雜度爲O(logn)。
    插入排序的空間複雜度爲O(1)
  11. 一個簡單無向圖有10個頂點,11條邊,如果用鄰接矩陣來存儲它,那麼矩陣裏面會有多少個0?
    78 = 10^2-2*11
    圖的鄰接矩陣存儲:https://blog.csdn.net/vicdd/article/details/77983089
  12. 以下hive sql語法正確的是
    答:select * from a inner join b on a.id=b.id
    select * from a inner join b on a.id &l t; &g t;b.id,錯在lt,gt符號
    select * from a where a.id in (select id from b),in後不可以接子查詢
    select sum(a.amt) as total from a where a.total>20,錯在where包含聚合函數
    (一)Hive-sql與SQL的區別
    總體一致:
    Hive-sql與SQL基本上一樣,因爲當初的設計目的,就是讓會SQL不會編程MapReduce的也能使用Hadoop進行處理數據。
    因此,大膽使用SQL的,如果遇到不對的,再查。
    (二)MyBatis SQL xml處理小於號與大於號
    當我們需要通過xml格式處理sql語句時,經常會用到< ,<=,>,>=等符號,但是很容易引起xml格式的錯誤,這樣會導致後臺將xml字符串轉換爲xml文檔時報錯,從而導致程序錯誤。這樣的問題在iBatiS中或者自定義的xml處理sql的程序中經常需要我們來處理。其實很簡單,我們只需作如下替換即可避免上述的錯誤:
    在這裏插入圖片描述
    (三)SQL where 和having使用注意事項
    1)在帶有groupby子句的查詢語句中,在select列表中指定的列要麼是groupby子句中指定的列,要麼包含聚組函數 。
    2)當在gropuby子句中使用having子句時,查詢結果中只返回滿足having條件的組。在一個sql語句中可以有where子句和having子句。having與where子句類似,均用於設置限定條件 。where子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。 having子句的作用是篩選滿足條件的組,即在分組之後過濾數據,條件中經常包含聚組函數,使用having條件顯示特定的組,也可以使用多個分組標準進行分組。
    3)having放在group by 的後面。
    4)group by 後面只能放非聚合函數的列。
  13. Hbase是一個面向列分佈式數據庫,和hive不同的是,hbase能夠在它的數據庫上實時運行,而不是運行mapreduce任務。
  14. 大表1000萬條數據, 小表1000條數據, 爲提高查詢效率兩行表關聯時通常做法是
    大表在前
  15. 有一個地區有2個市,一個來自A市的概率是20%,B市的是80%,A市得病的概率是2%,B市得病的概率是3%,現在有一個病人,問是A市的概率是?
    貝葉斯公式計算所得結果 0.20.02/(0.20.02 + 0.8*0.03)= 1/7
  16. x+y+z+m=10,其中x,y,z,m都是正整數,那麼x,y,z,m有多少種不同的取值組合?
    此問題等價於將10個球排一排後,中間插入三塊隔板將它們分成四堆球,使每一堆至少一個球.隔板不能相鄰,也不能放在兩端,只能放在中間的9個空內.因此共有C(9,3)=84種。
  17. 有無限的水源,一個5L無刻度桶和一個7L無刻度桶,則只利用這兩個無刻度桶,將不能獲得(F)L水
    A. 2
    B. 3
    C. 6
    D. 8
    E. 11
    F. 以上均能獲得
    其實只要滿足5a+7b=t即可。a, b可取任意整數,t就是能獲得的容量數。
  18. 有一堆石子,共80顆,甲,乙輪流從該堆中取石子,每次可以取2,4或者6顆,取得最後的石子的玩家爲贏家,甲乙都足夠聰明都想贏,若甲先取,則____。
    乙必勝。乙能保證在每次甲取完石子後選擇合適的數量,使得剩餘的石子數量爲8的倍數,那麼甲在下一次取石子的時候不能一次取完,故乙會獲勝。
  19. A, B 爲任意兩個事件且 A ⊂ B,P(B) > 0,則下列選項必然成立的是( P(A) ≤ P(A| B))
    P(A| B)限定了b爲全集,全集縮小,故P(A) ≤ P(A| B)
  20. 將一枚硬幣獨立地擲兩次,引進事件: A1 = {擲第一次出現正面}, A2 = {擲第二次出現正面},A3 = {正、反面各出現一次}, A4 = {正面出現兩次},則事件( A1, A2, A3兩兩獨立)
    P(A1A2)=P(A1)P(A2),
    P(A1A3)=P(A1)P(A3),
    P(A2A3)=P(A2)P(A3),
    P(A1A2A3)≠P(A1)P(A2)P(A3),
    P(A2A4)≠P(A2)P(A4).
    故:A1,A2,A3兩兩獨立但不相互獨立;A2,A3,A4不兩兩獨立更不相互獨立。
  21. 設隨機變量 X 與 Y 均服從正態分佈,X ~ N(µ, 16), Y ~ (µ, 25), 記p1 = P{X ≤ µ - 4}, p2 = P{Y ≥ µ + 5}, 則( p1 = p2)
    對任何實數µ,都有 p1 = p2
    在“正態分佈”中,σ表徵概率密度曲線的“寬度”,或展開的程度.不管μ和σ的值如何,區域[μ-σ, μ+σ]都覆蓋68.26%的概率。
  22. 設隨機變量X與Y相互獨立,且都服從區間(0,1)上的均勻分佈,則P{X^2 + Y^2 ≤ 1} =( )
    (X,Y)的聯合密度爲:f(x,y)=fX(x)fY(y)=1, 0<x<1, 0<y <10
    設:D={(x,y)|x2+y2≤1,x>0,y>0},則:
    P{X2+Y2≤1}=∬f(x,y)dxdy=∬Ddxdy
    均勻分佈的概率密度函數
    在這裏插入圖片描述
  23. 隨機變量X ~ N(0, 1), Y ~ N(1, 4),且相關係數ρ{XY} = 1,則(D )
    A. P{Y=-2X-1}=1
    B. P{Y=2X-1}=1
    C. P{Y=-2X+1}=1
    D. P{Y=2X+1}=1
    用排除法.
    設Y=aX+b,由ρXY=1,知:X,Y正相關,得:a>0,排除(A)和(C).
    由X:N(0,1),Y:N(1,4),得:EX=0,EY=1,E(aX+b)=aEX+b,
    即:1=ax0+b,b=1,
    從而排除(B)
    故選:D。
  24. 設隨機變量X和Y都服從正態分佈,且它們不相關,則(X與Y未必獨立 )
    A. X與Y一定獨立
    B. (X, Y)服從二維正態分佈
    C. X與Y未必獨立
    D. X + Y服從一維正態分佈
    A.只有當(X,Y) 服從二維正態分佈時,X與Y不相關⇔X與Y獨立,本題僅僅已知X和Y服從正態分佈,因此,由它們不相關推不出X與Y一定獨立,故A錯誤;
    B.若X和Y都服從正態分佈且相互獨立,則(X,Y)服從二維正態分佈,但題設並不知道X,Y是否獨立,故B錯誤;
    C.由A、B分析可知X與Y未必獨立,故C正確;
    D.需要求X與Y相互獨立時,才能推出X+Y服從一維正態分佈,故D錯誤.
  25. 若總體X~N(µ,δ^2), 其中δ^2已知,當樣本容量保持不變時,如果置信度減小,則的置信區間(長度變小 )。
    95%置信區間,意味着如果你用同樣的步驟,去選樣本,計算置信區間,那麼100次這樣的獨立過程,有95%的概率你計算出來的區間會包含真實參數值,即大概會有95個置信區間會包含真值。
    而對於某一次計算得到的某一個置信區間,其包含真值的概率,我們無法討論。
  26. 某電燈泡生產商聲稱,它們生產的電燈泡的平均使用時間爲85小時。質檢部門抽取20個電燈泡的隨機樣本,在的顯著性水平下,檢驗結果是未能拒絕原假設,這意味着(沒有證據證明該企業生產的電燈泡的平均使用時間不是85小時)
  27. 利用遞歸對數組進行全排列。
COUNT=0
def perm(n,begin,end):
    global COUNT
    if begin>=end:
        print (n)
        COUNT +=1
    else:
        i=begin
        for num in range(begin,end):
            n[num],n[i]=n[i],n[num]
            perm(n,begin+1,end)
            n[num],n[i]=n[i],n[num]
 
n=[1,2,3,4]
perm(n,0,len(n))
print (COUNT)
[1, 2, 3, 4]
[1, 2, 4, 3]
[1, 3, 2, 4]
[1, 3, 4, 2]
[1, 4, 3, 2]
[1, 4, 2, 3]
[2, 1, 3, 4]
[2, 1, 4, 3]
[2, 3, 1, 4]
[2, 3, 4, 1]
[2, 4, 3, 1]
[2, 4, 1, 3]
[3, 2, 1, 4]
[3, 2, 4, 1]
[3, 1, 2, 4]
[3, 1, 4, 2]
[3, 4, 1, 2]
[3, 4, 2, 1]
[4, 2, 3, 1]
[4, 2, 1, 3]
[4, 3, 2, 1]
[4, 3, 1, 2]
[4, 1, 3, 2]
[4, 1, 2, 3]
24
  1. 大文件的排序問題
    在我們日常開發中有時候會遇到這樣一個問題,有一個文件大小爲10GB,現在要爲裏面的數據進行排序,而計算機的內存只有1GB,如何對這10GB的數據進行排序呢?
    由於內存空間只有1GB我們無法一次性讀取所有的文件來進行排序,因此需要藉助外部排序來解決。外部排序的思路很簡單,它採用了一種" 排序-歸併 " 的策略。大概步驟如下:
    1)把10GB文件大小分爲10份,每一份1GB。
    2)依次把每份文件讀取到內存中進行排序,可採用快排、歸併、堆排等,然後把排序後的數據寫入到磁盤中,這樣每一份的文件數據都是有序的。
    3)對10個有序的文件,進行兩兩歸併。既把每兩個文件中的部分數據讀取到內存中進行比較,然後把比較後的結果輸出到臨時文件中,最終得到的臨時文件就是兩個小文件整合在一起的有序文件 。然後把該臨時文件和其他臨時文件再進行兩兩歸併,依次類推,最終輸出的文件就是一個有序的文件。
    注:而對於同一個文件來說,對其進行外部排序時訪問外存的次數同歸並的次數成正比,即歸併操作的次數越多,訪問外存的次數就越多。爲了提高外部排序的效率,降低歸併次數,所以出現了4路排序、5路排序、10路排序等K路排序。
  2. 若有33個長度不等的初始歸併段,做7路平衡歸併排序,爲組織最佳歸併樹,應增加長度爲0的初始歸併段的個數是____4____。
    1)在一般情況下,對於 k–路平衡歸併來說,若 (m-1)MOD(k-1)=0,則不需要增加虛段;否則需附加 k-(m-1)MOD(k-1)-1 個虛段。
    2)樹的帶權路徑長度(Weighted Path Length of Tree):定義爲樹中所有葉結點的帶權路徑長度之和。結點的帶權路徑長度:結點到樹根之間的路徑長度與該結點上權的乘積。哈夫曼樹是一種帶權路徑長度最短的二叉樹,也稱爲最優二叉樹。
    https://blog.csdn.net/sinat_38972110/article/details/82136196
  3. 將一個整數序列整理爲升序,兩趟處理後序列變爲10,12,21,9,7,3,4,25,則採用的排序算法可能是_插入排序__。
    插入排序:第一趟前兩個有序,第二趟前三個有序。
    快速排序:每經過一趟快排,軸點元素都必然就位,也就是說,一趟下來至少有1個元素在其最終位置,2趟就有兩個位置元素就位。10,12,21,9,7,3,4,25 正確的結果是,3,4,7,9,10,12,21,25.。這裏只有25一個元素就位了(10,12,21雖然有序,但他們應該在3,4,7,9後面纔行)。
  4. 在數理統計中, 一般通過增加抽樣次數取平均來使得預估誤差減小, 在機器學習中也有類似的模型處理, 如隨機森林, 通過引入隨機樣本並且增加決策樹的數據,對於隨機森林主要降低預估的哪個方面值
    預估方差
  5. 以下不屬於非監督學習的爲(D)
    A. 關聯規則
    B. Kmeans
    C. Word2vec
    D. Knn
    鄰近算法,或者說K最近鄰(kNN,k-NearestNeighbor)分類算法是數據挖掘分類技術中最簡單的方法之一。K近鄰是基本的分類和迴歸方法。分類時,對新的實例,根據其k個最近鄰的訓練實例的類別,通過多數表決等方式進行預測。k近鄰實際是利用訓練數據集對特徵向量空間進行劃分,並作爲其“分類”的模型。k值的選擇,距離的度量,分類決策規則是k近鄰法的三個基本要素。
  6. 將當前命令sh test.sh任務在後臺執行,下列最優雅的的做法是
    nohup sh test.sh &amp
  7. 截取logfile文件中含有suc的行,並且只輸出最後一列,下列操作正確的是:
    grep ‘suc’ logfile | awk ‘{print $NF}’
  8. 哪個不是DDL(數據庫定義語言)語句?
    A. ALTER
    B. CREATE
    C. RENAME
    D. GRANT
  9. 若要在員工信息表EMP中增加一列WANGYI_NO(網易id),可用( )。
    ALTER TABLE EMP ADD(WANGYI_NO CHAR(10))
  10. 在機器學習任務中經常假設矩陣爲n×n的對稱矩陣A, 則以下說法正確的是(對應於A的不同特徵值的特徵向量之間正交)
    對稱矩陣不一定滿秩;不同特徵值之間的特徵向量一定正交,而同一特徵值的特徵向量需要藉助公式得正交向量
  11. python中list的元素可以是tuple
  12. 一個快遞公司對同一年齡段的員工,進行汽車,三輪車,二輪車平均送件量的比較,結果給出sig.=0.034,說明
    按照0.05顯著性水平,拒絕H0,說明三類交通工具送件量有顯著差異。
    p值表示接受原假設最小的顯著性水平,p值越小,拒絕原假設的理由越充分。
  13. 已知樣本數據,求對應置信度下的置信區間(例題):https://blog.csdn.net/bitcarmanlee/article/details/50911533
  14. 最小二乘估計是線性無偏估計中方差最小的
  15. 設{xn}服從獨立同分布, E[xn] = 0, Var[xn]=1, 則當n趨向於無窮大時,下式值爲:在這裏插入圖片描述
    A. 無窮大
    B. 0
    C. 1
    D. 2
    E(X2)= E2(X)+Var(X)=1;
    E(XiXi+1)=E(Xi)E(Xi+1); 由隨機變量相互獨立得出
    上下取期望有
    原式=(1+0+1+0+…+1+0)/n=1
    兩個相互獨立隨機變量乘積的期望等於這兩個隨機變量期望的乘積。
  16. 關聯規則、支持度(support)、置信度(confidence)
    例子:
    總共有10000個消費者購買了商品,
    其中購買尿布的有1000人,
    購買啤酒的有2000人,
    購買麪包的有500人,
    同時購買尿布和啤酒的有800人,
    同時購買尿布的麪包的有100人。
    1)關聯規則
    關聯規則:用於表示數據內隱含的關聯性,例如:購買尿布的人往往會購買啤酒。
    2)支持度(support)
    支持度:{X, Y}同時出現的概率,例如:{尿布,啤酒}同時出現的概率
    在這裏插入圖片描述
    {尿布,啤酒}的支持度 = 800 / 10000 = 0.08
    {尿布,麪包}的支持度 = 100 / 10000 = 0.01
    注意:{尿布,啤酒}的支持度等於{啤酒,尿布}的支持度,支持度沒有先後順序之分。
    3)置信度(confidence)
    置信度:購買X的人,同時購買Y的概率,例如:購買尿布的人,同時購買啤酒的概率,而這個概率就是購買尿布時購買啤酒的置信度。
    在這裏插入圖片描述
    ( 尿布 -> 啤酒 ) 的置信度 = 800 / 1000 = 0.8
    ( 啤酒 -> 尿布 ) 的置信度 = 800 / 2000 = 0.4
  17. 小易有一些彩色的磚塊。每種顏色由一個大寫字母表示。各個顏色磚塊看起來都完全一樣。現在有一個給定的字符串s,s中每個字符代表小易的某個磚塊的顏色。小易想把他所有的磚塊排成一行。如果最多存在一對不同顏色的相鄰磚塊,那麼這行磚塊就很漂亮的。請你幫助小易計算有多少種方式將他所有磚塊排成漂亮的一行。(如果兩種方式所對應的磚塊顏色序列是相同的,那麼認爲這兩種方式是一樣的。)
    例如: s = “ABAB”,那麼小易有六種排列的結果:
    “AABB”,“ABAB”,“ABBA”,“BAAB”,“BABA”,“BBAA”
    其中只有"AABB"和"BBAA"滿足最多隻有一對不同顏色的相鄰磚塊。
x = input()
if len(set(x)) == 2:
    print(2)
elif len(set(x)) == 1:
    print(1)
else:
    print(0)

分析一下:如果只有一種大寫字母,肯定只有一種情況;
如果有兩種大寫字母,全排列出來有6中,符合題意的肯定只有兩種;
如果有三種字母(或者>3種),不同字母緊靠且符合題意的肯定沒有;
所以,顯而易見,三種情況考慮就OK了

  1. 小易爲了向他的父母表現他已經長大獨立了,他決定搬出去自己居住一段時間。一個人生活增加了許多花費: 小易每天必須喫一個水果並且需要每天支付x元的房屋租金。當前小易手中已經有f個水果和d元錢,小易也能去商店購買一些水果,商店每個水果售賣p元。小易爲了表現他獨立生活的能力,希望能獨立生活的時間越長越好,小易希望你來幫他計算一下他最多能獨立生活多少天。
    輸入描述:
    輸入包括一行,四個整數x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割
    輸出描述:
    輸出一個整數, 表示小易最多能獨立生活多少天。
s = input()
s = s.split(' ')
s = [int(x) for x in s]
if s[1] < s[2]/s[0]:
    print(s[1] + int((s[2]-s[0]*s[1])/(s[0]+s[3])))
else:
    print(int(s[2]/s[0]))
  1. 一個總體估計參數估計下的不同情形及使用的分佈
    在這裏插入圖片描述
    不同情形下總體均值的區間估計:
    在這裏插入圖片描述
    一個總體分佈的參數估計(區間,比例,方差的估計)
    https://my.oschina.net/u/1785519/blog/1060633
    https://blog.csdn.net/liangzuojiayi/article/details/78043658
  2. 數學期望:反映隨機變量平均取值的大小。
    離散型:
    在這裏插入圖片描述
    連續型:
    在這裏插入圖片描述
    性質:
    在這裏插入圖片描述
  3. 二叉排序樹:
    滿足的性質:
    1)若他的左子樹不空,則左子樹上所有的節點的值均小於根節點的值
    2)若他的右子樹不空,則右子樹上所有的節點的值均大於根節點的值
    3)他的左子樹和右子樹分別是一顆二叉排序樹。
    4)對於二叉排序樹的中序遍歷得到一個遞增序列
    二叉排序樹的查找:
    1)若給定的值等於根節點的值,則查找成功
    2)若給定的值小於根節點值,則繼續在左子樹上查找
    3)若給定的值大於根節點的值,則繼續在右子樹上進行查找
  4. 對總體進行區間估計時,需要考慮( ACE)
    A總體是否服從正態分佈
    B總體是否服從均勻分佈
    C總體方差是否已知
    D總體均值是否已知
    E用於估計的樣本是大樣本還是小樣本
  5. 極大似然估計和最小二乘法的區別
    最小二乘法的核心是權衡,因爲要在所有的線之間做選擇,選擇距離所有的點之和距離最短的(最小化誤差平方和);極大似然的核心是自戀,要相信自己是天選之子,自己看到的就是冥冥之中最接近真相的。(利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的參數值。)
    例如:一個麻袋裏有白球與黑球,但是我不知道它們之間的比例,那我就有放回的抽取10次,結果我發現我抽到了8次黑球2次白球,我要求最有可能的黑白球之間的比例時,就採取最大似然估計法:
    我假設我抽到黑球的概率爲p,那得出8次黑球2次白球這個結果的概率爲:P(黑=8)=p8*(1-p)2,現在我想要得出p是多少啊,很簡單,使得P(黑=8)最大的p就是我要求的結果,接下來求導的的過程就是求極值的過程啦。可能你會有疑問,爲什麼要ln一下呢,這是因爲ln把乘法變成加法了,且不會改變極值的位置(單調性保持一致嘛)這樣求導會方便很多。
  6. 利用輾轉相除法求最大公約數
    1)比較兩數,並使m>n
    2)將m作被除數,n做除數,相除後餘數爲r
    3)循環判斷r,若r==0,則n爲最大公約數,結束循環。若r !=0 ,執行m=n,n=r;將m作被除數,n做除數,相除後餘數爲r

num1 = int(input("請輸入第一個數字:"))
num2 = int(input("請輸入第一個數字:"))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
    m = n
    n = r
    r = m % n
print(num1, "和", num2, "的最大公約數爲", n)

阿里

  1. 觀測宇宙中單位體積內星球的個數,屬於什麼分佈:B
    A 學生分佈:小樣本量下對正態分佈的均值進行估計
    B 泊松分佈:描述單位時間內隨機事件發生的次數
    C 正態分佈:多組(多次獨立重複實驗下的隨機變量的均值)
    D 二項分佈:多次拋硬幣的獨立重複試驗
    把體積看成時間,那麼本題符合B泊松分佈。

泊松分佈的概率函數爲:
在這裏插入圖片描述
泊松分佈的參數λ是單位時間(或單位面積)內隨機事件的平均發生次數。 泊松分佈適合於描述單位時間內隨機事件發生的次數。泊松分佈的期望和方差均爲 λ。
學生t-分佈(Student’s t-distribution)可簡稱爲t分佈,用於根據小樣本來估計呈正態分佈且方差未知的總體的均值。如果總體方差已知或未知(例如在樣本數量足夠多時),則應該用正態分佈來估計呈正態分佈的總體的總體均值。
https://zh.wikipedia.org/wiki/學生t-分佈
二項分佈(英語:Binomial distribution)是n個獨立的是/非試驗中成功的次數的離散概率分佈,其中每次試驗的成功概率爲p。這樣的單次成功/失敗試驗又稱爲伯努利試驗。實際上,當n = 1時,二項分佈就是伯努利分佈。
在這裏插入圖片描述

  1. 一些關於數據挖掘說法是正確的(D)
    A 數據挖掘是萬能的(錯)
    B 如果你建立了一個database,那就意味着你已經有足夠的數據可以做數據挖掘了(錯)
    C 數據挖掘=數據+算法,數據挖掘人員大部分的時間用來處理複雜的挖掘算法(錯,業務上的時間大部分在調研和溝通需求,技術上大部分時間在清洗數據)
    D ABC均有錯
  2. 已知隨機變量X,Y分別服從泊松分佈P(S),卡方分佈X2(t),E(X)=4,D(Y)=9,則參數s,t分別:
    A 2,9
    B 4,9
    C 4,4.5(√)
    D 2,4.5
    k個獨立的標準正態分佈變量的平方和服從自由度爲k的卡方分佈。卡方變量之期望值=自由度 卡方變量之方差=兩倍自由度
    https://zh.wikipedia.org/wiki/卡方分佈
  3. 下面算法中哪一種不屬於廣義線性迴歸算法 (D)
    A 生存模型算法(如Cox比例風險迴歸,屬於)
    B beta迴歸算法(屬於)
    C logit迴歸算法(屬於)
    D 判別分析算法(如線性判別分析LDA)
  4. 有一列1000萬淘寶買家的淘寶運費險保費數據,要計算該列數據的P1-P100分位數,可使用哪個SAS語句?(C)
    A proc sort
    B proc rank
    C proc univariate(√)
    D proc freq
  5. X服從區間(2,6)上的均勻分佈,求對X進行3次獨立觀測中,至少有2次的觀測值大於3的概率
    A 0.84375(√)
    B 0.75275
    C 0.65275
    D 0.80370
    一個均勻分佈在區間[a,b]上的連續型隨機變量X可給出如下函數:
    概率密度函數:
    在這裏插入圖片描述
  6. 下面對於“預測變量間可能存在較嚴重的多重共線性”的論述中錯誤的是?
    A 迴歸係數的符號與專家經驗知識不符(對)
    B 方差膨脹因子(VIF)<5(錯,大於10認爲有嚴重多重共線性)
    C 其中兩個預測變量的相關係數>=0.85(對)
    D 變量重要性與專家經驗嚴重違背(對)
    A,D爲導致的結果,B,C爲判斷嚴重多重共線性的依據。
    隨機森林算法原理:
    只要瞭解決策樹的算法,那麼隨機森林是相當容易理解的。隨機森林的算法可以用如下幾個步驟概括:
    1)用有放回抽樣的方法(bootstrap)從樣本集中選取n個樣本作爲一個訓練集
    2)用抽樣得到的樣本集生成一棵決策樹。在生成的每一個結點:
    a. 隨機不重複地選擇d個特徵
    b. 利用這d個特徵分別對樣本集進行劃分,找到最佳的劃分特徵(可用基尼係數、增益率或者信息增益判別)
    3)重複步驟1到步驟2共k次,k即爲隨機森林中決策樹的個數。
    4)用訓練得到的隨機森林對測試樣本進行預測,並用票選法決定預測的結果。
    特徵重要性評估
    現實情況下,一個數據集中往往有成百上千個特徵,如何在其中選擇比結果影響最大的那幾個特徵,以此來縮減建立模型時的特徵數。這樣的方法其實很多,比如主成分分析,lasso,隨機森林等等。
    用隨機森林進行特徵重要性評估的思想其實很簡單,說白了就是看看每個特徵在隨機森林中的每顆樹上做了多大的貢獻,然後取個平均值,最後比一比特徵之間的貢獻大小。 那麼這個貢獻是怎麼一個說法呢?通常可以用基尼指數(Gini index)或者袋外數據(OOB)錯誤率作爲評價指標來衡量。
  7. 由於淘寶買家消費數據是億級別,假設爲了快速計算買家每月的平均消費額,採用抽樣1W個買家來計算
    A 採用分層抽樣方法把全量淘寶買家按照星級,每層抽取相同的數量,計算平均值(要求的是總的分佈,分層抽樣每層抽一樣的把分佈改變了)
    B 採用系統抽樣方法,把全量買家隨機排序,每隔一定數量抽一個,計算平均值(√)
    C 採用無放回隨機方法,從全量買家中隨機挑選一個買家,不放回,如此循環(√)
    D 採用有放回隨機方法,從全量買家中隨機挑選一個買家,然後再放回,如此循環(理論上會改變樣本分佈,雖然很小)
  8. 請找出數列4,9,23,60,157的下一項()
    A 411(√)
    B 314
    C 425
    D ABC均錯
    603-23=157,1573-60=411
  9. 以下哪個語法不是R的基礎語言
    A proc glot(這個是sas)
    B select *from table(這個是sql)
    C kc<-kmeans(data,3)(是R)
    D print ”hello world”(這個是python2.7)
    E sd<-summary(data)(是R)
    F import(python有,R不知道有沒有)
  10. 分析師在工作中的良好習慣是
    A 將工作空間的密碼共享給別人
    B 將數據下載到私人電腦進行分析處理
    C 在處理資源高峯期提交大任務運算
    D 不定期地將分析報告分享給團隊(√)
    E 定期清理存儲空間
    F 固化日常需要分析的數據表方便計算(√)
  11. 以下算法對缺失值敏感的模型包括:
    A Logistic Regression (√)
    B 隨機森林
    C 樸素貝葉斯
    D C4.5
  12. 投擲均勻正六面體骰子的熵是:
    A 1bit
    B 2.6bit(√)
    C 3.2bit
    D 3.6bit
    H = -(6 * (1/6 * log(1/6) ) = 2.6
    香農熵的計算公式
    這裏插入圖片描述
    設用計算器求log以2爲底,對數爲5的函數,操作方法:log5÷log2(計算器指令)。同理,求log2爲底,對數爲x,計算器指令:logx÷log2

京東

  1. 三種遍歷互求:https://www.cnblogs.com/weiyi-mgh/p/6616008.html
    a. 由前序遍歷和中序遍歷求後序遍歷:前序遍歷第一個即是根節點,根據確定的根節點到中序遍歷中確定左子樹和右子樹分別包含的節點,然後再通過前序遍歷確定左子樹中的根節點,以此類推完善整棵樹。
    b. 由後序遍歷和中序遍歷求後序遍歷:後序遍歷最後一個一個即是根節點,根據確定的根節點到中序遍歷中確定左子樹和右子樹分別包含的節點,然後再通過後序遍歷確定左子樹中的根節點,以此類推完善整棵樹。
    c. 有前序遍歷和後序遍歷不能完全確定一棵樹,但是在一定情況下可以推出不同的可能樹。如果前序遍歷的第二個數和後序遍歷的倒數第二個數不相等,則前序遍歷的第二個數爲整棵樹的根節點的左子樹的根節點,後序遍歷的倒數第二個數爲整棵樹的根節點的右子樹的根節點。
  2. 在軟件開發過程中,我們可以採用不同的過程模型,下列有關增量模型描述正確的(B)
    A. 已使用一種線性開發模型,具有不可回溯性
    B. 把待開發的軟件系統模塊化,將每個模塊作爲一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件
    C. 適用於已有產品或產品原型(樣品),只需客戶化的工程項目
    D. 軟件開發過程每迭代一次,軟件開發又前進一個層次
    增量模型也稱爲漸增模型,是把待開發的軟件系統「模塊化」,將每個模塊作爲一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。
    增量模型
    優點:
    (1)將待開發的軟件系統模塊化,可以「分批次地提交軟件產品」,使用戶可以及時瞭解軟件項目的進展。
    (2)以組件爲單位進行開發「降低了軟件開發的風險」。一個開發週期內的錯誤不會影響到整個軟件系統。
    (3)「開發順序靈活」。開發人員可以對組件的實現順序進行優先級排序,先完成需求穩定的核心組件。當組件的優先級發生變化時,還能及時地對實現順序進行調整。
    缺點
    (1)要求待開發的軟件系統可以被模塊化。如果待開發的軟件系統很難被模塊化,那麼將會給增量開發帶來很多麻煩。
  3. 關於TCP協議的描述,以下錯誤的是?B
    A. 面向連接
    B. 可提供多播服務
    C. 可靠交付
    D. 報文頭部長,傳輸開銷大
    TCP(Transmission Control Protocol
    傳輸控制協議)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793定義。
  4. 以下命令用於設置環境變量的是:
    A. export
    B. cat
    C. echo
    D. env
  5. 置信區間爲95%:樣本數目不變的情況下,做一百次試驗,有95個置信區間包含了總體真值。

數據分析概率題

  1. 殺人遊戲,6個人互相投票,有一個人被其他5個人一起投死的概率是多少()?假設每個人都不會投自己,投其他每個人是等概率的。
    分母:每個人可以投其他5個人,共5^6種可能;分子:C(1,6)六種可能,六個人選一個死,所以p=6/3125

  2. 20個阿里巴巴B2B技術部的員工被安排爲4排,每排5個人,我們任意選其中4人送給他們一人一本《effective c++》,那麼我們選出的4人都在不同排的概率爲()
    A.5^4*5!15!/20!
    B.4^5
    5!15!/20!
    C.5^4
    4!16!/20!
    D.4^5
    4!*16!/20!
    所有選擇的方法數是P2 = C(20,4) = 20!/4!/16!
    選的在不同排的有P1 = 5^4種 因爲每排有5個人嘛
    所以概率 P = P1 / P2

  3. 有8只球隊,採用抽籤的方式隨機配對,組成4場比賽。假設其中有4只強隊,那麼出現強強對話 (任意兩隻強隊相遇)的概率是____。(組合問題)
    給8只球隊編號(1-8),第一個球隊選擇對手有7種可能,第二個球隊選擇對手有5種,第三個球隊選擇有3種,剩餘兩個球隊爲一組對手,共7 * 5 * 3
    強強不做對手,第一個強隊選擇弱隊有4種可能,第二個強隊選擇弱隊有3種,依次類推。有4 * 3 * 2 * 1種,故有1-4 * 3 * 2 * 1/(7 * 5 * 3)=27/35。

  4. 兩個人輪流拋硬幣,規定第一個拋出正面的人可以喫到蘋果,請問先拋的人能喫到蘋果的概率多大?
    a. 第一種方法(列出所有可能性):p=1/2+ 1/2^3 + 1/2^5+…=2/3。
    b. 第二種方法(甲先拋喫到蘋果的情況分兩種,甲第一次拋出正面,甲第一次拋出反面後甲先拋喫到蘋果):先拋爲p,爲反後繼續拋,喫到的概率還是p,所以其實p=1/2(正)+1/2(反)*p,解得p=2/3。

  5. 兩種描述分別對應哪種分類算法的評價標準?
    描述有多少比例的小偷被警察抓了?警察抓小偷,描述警察抓的人中有多少是小偷?答案:Recall和Precision
    精確率:被推薦到正例的,有多少是真正正例;
    召回率:正例中,有多少真的被推薦到正例的,與真陽性率一樣。

  6. 有一個箱子,N把鑰匙,只有一把鑰匙能打開箱子,現在拿鑰匙去看箱子。問恰好第k次打開箱子的概率?
    在這裏插入圖片描述

  7. 某國家非常重男輕女,若一戶人家生了一個女孩,便再要一個,直到生下男孩爲止,假設生男生女概率相等,請問平均每戶人家有________個女孩。
    首次成功的概率爲(1-p)k p,也就是首次出現男孩的概率,那麼發生的次數也就是孩子的個數服從幾何分佈,則期望爲2,所以女孩是1個。幾何分佈的數學期望爲1/p。

  8. 中關村電子城某賣手機的店鋪給客人報價,如果按照底價500元(成本價)報出,那麼客人就一定會選擇在該店鋪購買;價格每增加1元,客人流失的可能性增加1%。那麼該店鋪給客人報出的最優價格是?
    若按原價則n名客人都選擇在該店購買,且每增加一元,客人流失1%。所以可以列出總利潤爲p*(1-p%)n,其中p爲增加的價格。由於n不變,所以當p(1-p%)最大時,總利潤最大,也就是-(p/10-5)2 =0時,此時p=50。那麼最優價格就是500+50=550.

  9. 硬幣遊戲:連續扔硬幣,直到 某一人獲勝,A獲勝條件是先正後反,B獲勝是出現連續兩次反面,問AB遊戲時A獲勝概率是?
    考慮先拋兩次,共4種情況:正正,正反,反正,反反;
    正反 A勝,反反 B勝;
    正正 情況下,接着拋,如果是正,遊戲繼續;如果是反,A勝。所以這種情況下最終也是A勝。
    反正 情況下也是類似的,最終也是A勝。
    所以A得勝率是3/4.

  10. 小a和小b一起玩一個遊戲,兩個人一起拋擲一枚硬幣,正面爲H,反面爲T。兩個人把拋到的結果寫成一個序列。如果出現HHT則小a獲勝,遊戲結束。如果HTT出現則小b獲勝。小a想問一下他獲勝的概率是多少?
    https://www.nowcoder.com/questionTerminal/86b03d05c5bd429a8ba35dd5df3fbda2?source=relative

  11. 假定拋出的硬幣落地之後正反兩面出現的概率分別爲1/2,那麼拋10次和100次硬幣(分別稱爲T10和T100)相比,以下說法正確的是 aT100出現一半正面比T10出現一半正面的概率更大;bT100前3次都是正面的概率比T10前3次都是正面的可能性大;cT100正面次數的方差小於T10出現正面次數的方差;dT100出現正面的比例比T10出現正面的比例在(0.45,0.55)區間中的可能性更大?

A: T00出現一半正面的概率:C10050/(2100) T0出現一半正面的概率:C105/(210) 前面小與後面
B:T100 與T10 前三次都爲正面概率一樣均爲 1/8
C:二項分佈的方差 np(1-p) T100大
https://www.nowcoder.com/questionTerminal/f676794d1eb54be8b78fd48c27629261

  1. 有4副相同的牌,每副牌有4張不同的牌.先從這16張牌中,隨機選4張出來.然後,在這4張牌中隨機選擇一張牌,然後把抽出的一張放回3張中,再隨機選擇一張牌.與上次選出的牌一樣的概率是()
    首先看最後抽的那次,與上次一樣有兩種可能,一:就是上次抽的那張,二:不是上次抽的那張但是花色和上次一樣。所以就是上次的那張概率爲1/4,不是那張爲3/4,但是這裏面有同樣花色的概率爲3/15。所以1/4+3/4*3/15=2/5。
  2. 五個海盜搶到了100顆寶石,每一顆都一樣大小和價值連城。他們決定這麼分:
    抽籤決定自己的號碼(1、2、3、4、5)
    首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚
    如果1號死後,再由2號提出分配方案,然後剩下的4人進行表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚,依此類推
    條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。
    問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?

    倒推法: ①假設1、2、3號都死了,只剩4號和5號。這時無論4號怎麼分(哪怕分5號100個),5號只要反對,4號就死了(因爲沒有超過半數同意,非要大於50%纔行),4號的生命得不到保障,所以,4號不能讓3號死,3號死了4號就危險,所以,3號不論怎麼分,4號都得同意。 ②假設1、2號死了,3號來分的話,他肯定分自己100個,4號和5號都0個,因爲3號肯定同意,4號也必須同意,就有大於50%的選票。 ③假設1號死了,2號來分。2號肯定不會收買3號,收買4號和5號更好些,因爲只要給他們1人1個,4號和5號就都得同意(由假設2,2號死了的話,4號和5號一個也分不到,現在2號給了他們1人1個,他們只得同意,2號會這麼分:98、0、1、1)。 ④假設1號來分,他不會收買2號,那起碼要給2號99個纔行,他肯定會收買3號,因爲給3號1個,3號就會同意1號的分法,3號要是不同意,1號死了2號分的話,3號一個也得不到,這時1號只要再收買4號和5號中任何一人就行了,給這個人兩個,他就必須同意。 所以,1號的分配方案爲:97、0、1、2、0 或97、0、1、0、2。
  3. 老王有兩個孩子,已知至少有一個孩子是在星期二出生的男孩。問:兩個孩子都是男孩的概率是多大?
    https://blog.csdn.net/u012662688/article/details/52813387
  4. u(z)、t檢驗(計算統計量後與表中數據對照判斷是否通過檢驗)
    u檢驗和t檢驗可用於樣本均數與總體均數的比較以及兩樣本均數的比較。理論上要求樣本來自正態分佈總體。但在實用時,只要樣本例數n較大,或n小但總體標準差σ已知時,就可應用u檢驗;n小且總體標準差σ未知時,可應用t檢驗,但要求樣本來自正態分佈總體。兩樣本均數比較時還要求兩總體方差相等。
    例題: https://www.cnblogs.com/emanlee/archive/2008/10/25/1319587.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章