網易筆試題

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. 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(平均數)。
偏度本身是相對於均值左右數據的多少。右偏(尾巴一定是在右邊),也就是說數據在均值左側的數量較多,所以爲了達到所有數據於均值之差和爲0,應該存在較大的數與之平衡,所有分佈圖裏有一個很長的右端的拖尾(就是右端必須存在很大的值)。既然均值左側的數比較多,對比中位數左右兩側數一樣多,則均值必在中位數的右側。另外,右偏的圖像圍成面積爲0.5的分界點應該在峯值點的右側,所以中位數大於衆數。所以就有衆小於中小於均。
13. 抽取30個手機用戶,計算出他們通話時間的方差。要用樣本方差推斷總體方差,假定前提是所有用戶的通話時間應服從(正態分佈)
一個總體的方差的區間估計其前提條件是總體服從正態分佈,在置信水平下的置信區間服從卡方分佈。
14. 命題A:隨機變量X和Y獨立,命題B:隨機變量X和Y不相關。A是B的
__充分不必要__條件。

15. 假定樹根的高度爲0,則高度爲6的二叉樹最多有___64___個葉節點。
一棵樹當中沒有子結點(即度爲0)的結點稱爲葉子結點。所以2^6=64。
注:某節點的深度是指從根節點到該節點的最長簡單路徑邊的條數,而高度是指從該節點到葉子節點的最長簡單路徑邊的條數。樹的高度和深度是相等的。
在這裏插入圖片描述
上圖中二叉樹的高度和深度爲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;
20. 有20個人去看電影,電影票50元。其中只有10個人有50元錢,另外10個人都只有一張面值100元的紙幣,電影院沒有其他鈔票可以找零,問有多少種找零的方法?
卡特蘭數問題,關於這個瞭解甚少就做一個基本介紹,其實這裏如果用卡特蘭數來做還得有一個條件就是且一人只買一張票,也就是說每一個有50塊錢的人要先去付錢,然後再是拿着100塊錢的人去付錢,然後這裏我們看成是出棧和入棧操作,把出棧次序和進棧次序構成40個數字的序列,因爲要進棧和出棧都算在這個序列裏面,然後就可以用卡特蘭數來求解了,我們這裏可以直接用公式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 –select----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後面才行)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章