2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)_第1頁
2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)_第2頁
2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)_第3頁
2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)_第4頁
2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2025年P(guān)ython機(jī)器學(xué)習(xí)考試試卷:樸素貝葉斯分類器實(shí)戰(zhàn)考試時(shí)間:______分鐘總分:______分姓名:______一、編程題1.假設(shè)你已經(jīng)使用`pandas`讀取了一個(gè)名為`data.csv`的文件,其中包含以下列:`Feature1`(數(shù)值型),`Feature2`(分類型),`Feature3`(分類型),`Target`(分類型,為你的目標(biāo)變量)。請完成以下數(shù)據(jù)預(yù)處理步驟,并將處理后的特征數(shù)據(jù)賦值給變量`X_processed`,目標(biāo)變量賦值給`y`。*使用`SimpleImputer`填充數(shù)值型特征`Feature1`中的缺失值,填充值為該特征的均值。*對分類型特征`Feature2`和`Feature3`進(jìn)行獨(dú)熱編碼(`OneHotEncoder`),不處理缺失值,確保輸出為數(shù)值型。*使用`StandardScaler`對數(shù)值型特征`Feature1`進(jìn)行標(biāo)準(zhǔn)化處理。*將上述所有處理后的特征合并(使用`pandas`的`concat`函數(shù))形成新的特征矩陣`X_processed`。*從原始`pandas`DataFrame中提取目標(biāo)變量`Target`到`y`。2.基于上一題處理好的數(shù)據(jù)`X_processed`和`y`,完成以下樸素貝葉斯分類任務(wù):*將數(shù)據(jù)集劃分為訓(xùn)練集(80%)和測試集(20%),隨機(jī)種子設(shè)置為`42`。*創(chuàng)建一個(gè)`MultinomialNB`樸素貝葉斯分類器實(shí)例,設(shè)置平滑參數(shù)`alpha=0.1`。*使用訓(xùn)練集數(shù)據(jù)(`X_train`,`y_train`)訓(xùn)練該樸素貝葉斯分類器。*使用訓(xùn)練好的模型對測試集數(shù)據(jù)進(jìn)行預(yù)測,將預(yù)測結(jié)果存儲在變量`y_pred`中。*計(jì)算預(yù)測結(jié)果的準(zhǔn)確率(`accuracy_score`),并將結(jié)果存儲在變量`accuracy`中。3.繼續(xù)使用上一題訓(xùn)練好的`MultinomialNB`模型和測試數(shù)據(jù)`X_test`,`y_test`:*計(jì)算預(yù)測結(jié)果的混淆矩陣(`confusion_matrix`),并將結(jié)果存儲在變量`cm`中。*計(jì)算預(yù)測結(jié)果的精確率(`precision_score`),考慮所有類別,使用`average='macro'`。*計(jì)算預(yù)測結(jié)果的召回率(`recall_score`),考慮所有類別,使用`average='micro'`。4.現(xiàn)在你需要嘗試使用另一種樸素貝葉斯模型。請基于上一題劃分好的訓(xùn)練集`X_train`,`y_train`:*創(chuàng)建一個(gè)`GaussianNB`樸素貝葉斯分類器實(shí)例。*使用訓(xùn)練集數(shù)據(jù)訓(xùn)練該`GaussianNB`模型。*使用訓(xùn)練好的`GaussianNB`模型對測試集數(shù)據(jù)進(jìn)行預(yù)測,將預(yù)測結(jié)果存儲在變量`y_pred_gaussian`中。*計(jì)算該模型預(yù)測結(jié)果的準(zhǔn)確率,并將結(jié)果存儲在變量`accuracy_gaussian`中。5.請回答以下關(guān)于樸素貝葉斯分類器的問題(請將答案寫在答題紙上,無需代碼):*簡述樸素貝葉斯分類器名稱中“樸素”的含義及其基于的核心假設(shè)。*`MultinomialNB`和`BernoulliNB`通常分別適用于哪種類型的數(shù)據(jù)特征?(請分別說明)*在使用`MultinomialNB`時(shí),平滑參數(shù)`alpha`起什么作用?較大的`alpha`值傾向于使預(yù)測更偏向于哪些類別的概率?二、論述題6.假設(shè)你使用多項(xiàng)式樸素貝葉斯(`MultinomialNB`)對一個(gè)文本分類任務(wù)進(jìn)行了建模,得到了如下的混淆矩陣(僅示例如下,非真實(shí)數(shù)據(jù)):```|類別A|類別B|類別C----|-------|-------|-------預(yù)測|85|5|10----|-------|-------|-------|8|120|12----|-------|-------|-------|5|7|108```假設(shè)類別B是正例,類別A和C是負(fù)例。請基于此混淆矩陣,計(jì)算精確率(Precision)、召回率(Recall)和F1分?jǐn)?shù)(F1-Score),并簡要分析模型的性能表現(xiàn)。試卷答案一、編程題1.```pythonimportpandasaspdfromsklearn.imputeimportSimpleImputerfromsklearn.preprocessingimportOneHotEncoder,StandardScalerfromposeimportColumnTransformerfromsklearn.model_selectionimporttrain_test_split#假設(shè)df是讀取data.csv后的pandasDataFrame#df=pd.read_csv('data.csv')#指定需要處理的列numeric_features=['Feature1']categorical_features=['Feature2','Feature3']#創(chuàng)建預(yù)處理步驟preprocessor=ColumnTransformer(transformers=[('num',StandardScaler(),numeric_features),('cat',OneHotEncoder(),categorical_features)],remainder='passthrough'#保留其他未提及的列,這里假設(shè)Target是最后一列)#分離特征和目標(biāo)變量X=df.drop('Target',axis=1)y=df['Target']#處理缺失值(對未標(biāo)準(zhǔn)化的Feature1單獨(dú)處理)imputer=SimpleImputer(strategy='mean')X['Feature1']=imputer.fit_transform(X[['Feature1']])#應(yīng)用預(yù)處理X_processed=preprocessor.fit_transform(X)#劃分?jǐn)?shù)據(jù)集#X_processed需要轉(zhuǎn)換為DataFrame或類似格式才能使用train_test_split#這里假設(shè)X_processed已經(jīng)是合適的格式#X_processed_df=pd.DataFrame(X_processed,columns=preprocessor.get_feature_names_out())#X_train,X_test,y_train,y_test=train_test_split(X_processed_df,y,test_size=0.2,random_state=42)#注意:實(shí)際運(yùn)行時(shí)需要確保X_processed是DataFrame格式或可以直接分割的格式#以下為模擬分割后的變量賦值,實(shí)際代碼應(yīng)在上一步完成split#X_train_processed,X_test_processed,y_train,y_test=train_test_split(X_processed,y,test_size=0.2,random_state=42)```2.```pythonfromsklearn.naive_bayesimportMultinomialNBfromsklearn.metricsimportaccuracy_score#假設(shè)已成功劃分出X_train_processed,y_train,X_test_processed,y_test#創(chuàng)建并訓(xùn)練模型model_nb=MultinomialNB(alpha=0.1)model_nb.fit(X_train_processed,y_train)#進(jìn)行預(yù)測y_pred=model_nb.predict(X_test_processed)#計(jì)算準(zhǔn)確率accuracy=accuracy_score(y_test,y_pred)```3.```pythonfromsklearn.metricsimportconfusion_matrix,precision_score,recall_score#假設(shè)已成功劃分出X_test_processed,y_test以及model_nb(已訓(xùn)練)#計(jì)算混淆矩陣cm=confusion_matrix(y_test,y_pred)#計(jì)算宏平均精確率precision_macro=precision_score(y_test,y_pred,average='macro')#計(jì)算微平均召回率recall_micro=recall_score(y_test,y_pred,average='micro')```4.```pythonfromsklearn.naive_bayesimportGaussianNB#假設(shè)已成功劃分出X_train_processed,y_train#創(chuàng)建并訓(xùn)練高斯NB模型model_gaussian=GaussianNB()model_gaussian.fit(X_train_processed,y_train)#進(jìn)行預(yù)測y_pred_gaussian=model_gaussian.predict(X_test_processed)#計(jì)算準(zhǔn)確率accuracy_gaussian=accuracy_score(y_test,y_pred_gaussian)```5.```樸素貝葉斯分類器名稱中的“樸素”指的是它假設(shè)特征之間相互獨(dú)立。即模型假設(shè)一個(gè)樣本的各個(gè)特征之間是獨(dú)立的,它們對分類結(jié)果的貢獻(xiàn)是相互加和的,盡管現(xiàn)實(shí)中特征之間可能存在關(guān)聯(lián)。這個(gè)假設(shè)(條件獨(dú)立性假設(shè))使得模型計(jì)算簡單,易于實(shí)現(xiàn),并且在許多實(shí)際應(yīng)用中表現(xiàn)良好,尤其是在文本分類等領(lǐng)域。MultinomialNB通常適用于計(jì)數(shù)數(shù)據(jù),例如文本分類中詞語出現(xiàn)的次數(shù),或者表示每個(gè)類別中每個(gè)特征值出現(xiàn)的次數(shù)的向量。BernoulliNB通常適用于二元特征數(shù)據(jù),例如文檔是否包含某個(gè)特定詞語(是/否),或者特征是否存在的二元標(biāo)志(是/否)。在使用MultinomialNB時(shí),平滑參數(shù)alpha的作用是防止模型在訓(xùn)練數(shù)據(jù)中對某些類別或特征值出現(xiàn)概率為0的情況過于敏感。通過給所有可能的特征值計(jì)數(shù)加上一個(gè)小的常數(shù)(alpha),可以確保預(yù)測時(shí)所有類別的概率都不會是零,從而避免某些特征在測試數(shù)據(jù)中出現(xiàn)時(shí)無法計(jì)算概率的問題。較大的alpha值意味著更強(qiáng)的平滑,傾向于使預(yù)測的概率分布更加平滑,減少對訓(xùn)練數(shù)據(jù)中極端情況的依賴,可能會導(dǎo)致模型偏差增大,但方差減小,對未見過的數(shù)據(jù)可能更魯棒。```二、論述題6.```基于給定的混淆矩陣:預(yù)測|類別A|類別B|類別C----|-------|-------|-------實(shí)際|85|5|10----|-------|-------|-------|8|120|12----|-------|-------|-------|5|7|108目標(biāo)類別為B(正例)。計(jì)算各項(xiàng)指標(biāo):*精確率(PrecisionforB)=TP_B/(TP_B+FP_B)TP_B=預(yù)測為B且實(shí)際為B的數(shù)量=120FP_B=預(yù)測為B但實(shí)際不為B的數(shù)量=預(yù)測為B的總數(shù)-TP_B=(85+5+10)-120=10-120=-105??計(jì)算錯(cuò)誤,F(xiàn)P_B=預(yù)測為B但實(shí)際不為B的數(shù)量=預(yù)測為B的總數(shù)-TP_B=(85+5+10)-120=100-120=-20??再次計(jì)算錯(cuò)誤。預(yù)測為B的總數(shù)=85(A)+5(B)+10(C)=100。實(shí)際為B的數(shù)量=120。錯(cuò)誤理解了矩陣。正確計(jì)算:預(yù)測為B的總數(shù)=5(B)=5實(shí)際為B的總數(shù)=120(B)FP_B=預(yù)測為B但實(shí)際不為B的數(shù)量=預(yù)測為B的總數(shù)-實(shí)際為B的數(shù)量=5-120=-115??看來對混淆矩陣的理解有誤?;煜仃嚨臉?biāo)準(zhǔn)形式是:預(yù)測\實(shí)際|正例(T)|負(fù)例(N)|總計(jì)---------|-------------|-------------|-------正例(T)|TP|FP|TP+FP負(fù)例(N)|FN|TN|FN+TN總計(jì)|TP+FN|FP+TN|總樣本重新審視給定的矩陣:|類別A|類別B|類別C|總計(jì)----|-------|-------|-------|-------A|85|5|10|100(預(yù)測A)B|8|120|12|140(預(yù)測B)C|5|7|108|120(預(yù)測C)----|-------|-------|-------|-------總計(jì)|98|132|130|360(總樣本)目標(biāo)類別B是正例。混淆矩陣應(yīng)為:預(yù)測\實(shí)際|B(T)|A(N)|C(N)|總計(jì)---------|----------|----------|----------|-------B(T)|TP_B|FP_B|FP_B|TP_B+FP_BA(N)|FN_B|TN_A|TN_A|FN_B+TN_AC(N)|FN_B|TN_C|TN_C|FN_B+TN_C總計(jì)|實(shí)際B|實(shí)際A|實(shí)際C|總樣本從原始矩陣看:預(yù)測B|實(shí)際A:5|實(shí)際B:120|實(shí)際C:12預(yù)測A|實(shí)際B:8|實(shí)際A:85|實(shí)際C:5預(yù)測C|實(shí)際B:7|實(shí)際A:5|實(shí)際C:108所以:TP_B=120FP_B=預(yù)測為B但實(shí)際為A+預(yù)測為B但實(shí)際為C=5+12=17FN_B=實(shí)際為B但預(yù)測為A+實(shí)際為B但預(yù)測為C=8+7=15TN_A=實(shí)際為A且預(yù)測為A+實(shí)際為A且預(yù)測為C=85+5=90TN_C=實(shí)際為C且預(yù)測為A+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論