版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)挖掘:分類與回歸的評(píng)估指標(biāo)教程1數(shù)據(jù)挖掘概述1.1數(shù)據(jù)挖掘的基本概念數(shù)據(jù)挖掘(DataMining)是一種從大量數(shù)據(jù)中提取有用信息的過程,這些信息可以是模式、關(guān)聯(lián)、趨勢或異常。數(shù)據(jù)挖掘的目標(biāo)是發(fā)現(xiàn)隱藏在數(shù)據(jù)中的有價(jià)值知識(shí),以支持決策制定。數(shù)據(jù)挖掘技術(shù)廣泛應(yīng)用于商業(yè)智能、科學(xué)研究、工程、醫(yī)療健康等領(lǐng)域。數(shù)據(jù)挖掘涉及多個(gè)步驟,包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)選擇、數(shù)據(jù)變換、數(shù)據(jù)挖掘、模式評(píng)估和知識(shí)表示。其中,數(shù)據(jù)清洗和數(shù)據(jù)集成用于處理數(shù)據(jù)中的不一致性和缺失值;數(shù)據(jù)選擇和數(shù)據(jù)變換則用于減少數(shù)據(jù)量和轉(zhuǎn)換數(shù)據(jù)格式,以便于后續(xù)的挖掘過程;數(shù)據(jù)挖掘是核心步驟,通過應(yīng)用各種算法來發(fā)現(xiàn)數(shù)據(jù)中的模式;模式評(píng)估和知識(shí)表示則是對(duì)挖掘出的模式進(jìn)行評(píng)估和可視化,確保其對(duì)用戶是有意義的。1.1.1示例:數(shù)據(jù)清洗假設(shè)我們有一組銷售數(shù)據(jù),其中包含日期、產(chǎn)品ID、銷售數(shù)量和價(jià)格。數(shù)據(jù)中存在一些缺失值和異常值,需要進(jìn)行清洗。importpandasaspd
#創(chuàng)建示例數(shù)據(jù)
data={
'Date':['2023-01-01','2023-01-02','2023-01-03','2023-01-04','2023-01-05'],
'ProductID':[1,2,3,4,5],
'Quantity':[100,200,None,400,500],
'Price':[10.5,15.2,20.0,None,25.0]
}
df=pd.DataFrame(data)
#數(shù)據(jù)清洗:刪除包含缺失值的行
df_cleaned=df.dropna()
#數(shù)據(jù)清洗:替換異常值
df_cleaned['Quantity']=df_cleaned['Quantity'].replace(0,df_cleaned['Quantity'].mean())
#輸出清洗后的數(shù)據(jù)
print(df_cleaned)1.2分類與回歸的區(qū)別數(shù)據(jù)挖掘中的兩大核心任務(wù)是分類(Classification)和回歸(Regression)。分類和回歸都是預(yù)測模型,但它們預(yù)測的目標(biāo)類型不同。分類:分類任務(wù)的目標(biāo)是預(yù)測離散的類別標(biāo)簽。例如,預(yù)測一封電子郵件是“垃圾郵件”還是“非垃圾郵件”,或者預(yù)測一個(gè)客戶是否會(huì)購買某個(gè)產(chǎn)品?;貧w:回歸任務(wù)的目標(biāo)是預(yù)測連續(xù)的數(shù)值。例如,預(yù)測房價(jià)、股票價(jià)格或銷售額。1.2.1示例:分類與回歸的簡單模型分類:使用邏輯回歸預(yù)測客戶是否會(huì)購買產(chǎn)品fromsklearn.model_selectionimporttrain_test_split
fromsklearn.linear_modelimportLogisticRegression
fromsklearn.metricsimportclassification_report
#創(chuàng)建示例數(shù)據(jù)
X=[[1,2],[3,4],[5,6],[7,8]]
y=[0,0,1,1]#0表示不會(huì)購買,1表示會(huì)購買
#劃分訓(xùn)練集和測試集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)
#創(chuàng)建邏輯回歸模型
model=LogisticRegression()
#訓(xùn)練模型
model.fit(X_train,y_train)
#預(yù)測
y_pred=model.predict(X_test)
#輸出分類報(bào)告
print(classification_report(y_test,y_pred))回歸:使用線性回歸預(yù)測房價(jià)fromsklearn.model_selectionimporttrain_test_split
fromsklearn.linear_modelimportLinearRegression
fromsklearn.metricsimportmean_squared_error
#創(chuàng)建示例數(shù)據(jù)
X=[[1,2],[3,4],[5,6],[7,8]]
y=[100,150,200,250]#房價(jià)
#劃分訓(xùn)練集和測試集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)
#創(chuàng)建線性回歸模型
model=LinearRegression()
#訓(xùn)練模型
model.fit(X_train,y_train)
#預(yù)測
y_pred=model.predict(X_test)
#輸出均方誤差
print("MeanSquaredError:",mean_squared_error(y_test,y_pred))通過以上示例,我們可以看到分類和回歸在數(shù)據(jù)挖掘中的應(yīng)用差異,以及如何使用Python中的scikit-learn庫來實(shí)現(xiàn)這些模型。2數(shù)據(jù)挖掘:分類評(píng)估指標(biāo)2.1混淆矩陣的構(gòu)建混淆矩陣是評(píng)估分類模型性能的重要工具,它通過比較預(yù)測結(jié)果與實(shí)際結(jié)果,提供了一種直觀的方式來理解模型的分類效果?;煜仃囃ǔ0膫€(gè)關(guān)鍵部分:真正例(TruePositives,TP)、真反例(TrueNegatives,TN)、假正例(FalsePositives,FP)和假反例(FalseNegatives,FN)。2.1.1示例代碼假設(shè)我們有一個(gè)二分類問題,模型預(yù)測結(jié)果與實(shí)際結(jié)果如下:實(shí)際為正類,預(yù)測為正類:50實(shí)際為正類,預(yù)測為反類:10實(shí)際為反類,預(yù)測為正類:5實(shí)際為反類,預(yù)測為反類:35我們可以使用Python的numpy庫來構(gòu)建混淆矩陣:importnumpyasnp
#實(shí)際結(jié)果
y_true=np.array([1]*60+[0]*40)
#預(yù)測結(jié)果
y_pred=np.array([1]*55+[0]*45)
#構(gòu)建混淆矩陣
fromsklearn.metricsimportconfusion_matrix
cm=confusion_matrix(y_true,y_pred)
print(cm)輸出結(jié)果:[[355]
[1050]]這里,cm[0][0]是真反例(TN),cm[0][1]是假正例(FP),cm[1][0]是假反例(FN),cm[1][1]是真正例(TP)。2.2準(zhǔn)確率、召回率與F1分?jǐn)?shù)2.2.1準(zhǔn)確率準(zhǔn)確率(Accuracy)是分類正確的樣本數(shù)占總樣本數(shù)的比例。計(jì)算公式為:Accuracy2.2.2召回率召回率(Recall)是分類器正確識(shí)別出的正類樣本數(shù)占所有實(shí)際正類樣本數(shù)的比例。計(jì)算公式為:Recall2.2.3F1分?jǐn)?shù)F1分?jǐn)?shù)是準(zhǔn)確率和召回率的調(diào)和平均數(shù),用于在準(zhǔn)確率和召回率之間找到平衡。計(jì)算公式為:F其中,Precision是真正例占所有預(yù)測為正類樣本的比例。2.2.4示例代碼使用sklearn庫計(jì)算準(zhǔn)確率、召回率和F1分?jǐn)?shù):fromsklearn.metricsimportaccuracy_score,recall_score,f1_score
#計(jì)算準(zhǔn)確率
accuracy=accuracy_score(y_true,y_pred)
print("Accuracy:",accuracy)
#計(jì)算召回率
recall=recall_score(y_true,y_pred)
print("Recall:",recall)
#計(jì)算F1分?jǐn)?shù)
f1=f1_score(y_true,y_pred)
print("F1Score:",f1)2.3ROC曲線與AUC值ROC曲線(ReceiverOperatingCharacteristiccurve)是評(píng)估分類模型性能的另一種方法,它通過繪制不同閾值下的真陽性率(TruePositiveRate,TPR)與假陽性率(FalsePositiveRate,FPR)來展示模型的分類能力。AUC值(AreaUndertheCurve)是ROC曲線下方的面積,AUC值越大,模型的分類性能越好。2.3.1示例代碼使用sklearn庫繪制ROC曲線并計(jì)算AUC值:fromsklearn.metricsimportroc_curve,auc
importmatplotlib.pyplotasplt
#模型預(yù)測的概率
y_scores=np.array([0.9]*55+[0.1]*45)
#計(jì)算FPR和TPR
fpr,tpr,_=roc_curve(y_true,y_scores)
roc_auc=auc(fpr,tpr)
#繪制ROC曲線
plt.figure()
lw=2
plt.plot(fpr,tpr,color='darkorange',
lw=lw,label='ROCcurve(area=%0.2f)'%roc_auc)
plt.plot([0,1],[0,1],color='navy',lw=lw,linestyle='--')
plt.xlim([0.0,1.0])
plt.ylim([0.0,1.05])
plt.xlabel('FalsePositiveRate')
plt.ylabel('TruePositiveRate')
plt.title('ReceiverOperatingCharacteristic')
plt.legend(loc="lowerright")
plt.show()2.4多分類問題的評(píng)估在多分類問題中,混淆矩陣和準(zhǔn)確率等指標(biāo)可以擴(kuò)展到多個(gè)類別。例如,對(duì)于三分類問題,混淆矩陣將是一個(gè)3x3的矩陣,而準(zhǔn)確率、召回率和F1分?jǐn)?shù)可以針對(duì)每個(gè)類別分別計(jì)算,也可以計(jì)算一個(gè)加權(quán)平均值。2.4.1示例代碼使用sklearn庫計(jì)算多分類問題的準(zhǔn)確率、召回率和F1分?jǐn)?shù):fromsklearn.metricsimportaccuracy_score,recall_score,f1_score
#假設(shè)我們有三個(gè)類別:0,1,2
y_true=np.array([0]*30+[1]*40+[2]*30)
y_pred=np.array([0]*25+[1]*45+[2]*30)
#計(jì)算準(zhǔn)確率
accuracy=accuracy_score(y_true,y_pred)
print("Accuracy:",accuracy)
#計(jì)算召回率
recall=recall_score(y_true,y_pred,average='weighted')
print("Recall:",recall)
#計(jì)算F1分?jǐn)?shù)
f1=f1_score(y_true,y_pred,average='weighted')
print("F1Score:",f1)以上代碼展示了如何在多分類問題中使用加權(quán)平均來計(jì)算召回率和F1分?jǐn)?shù),其中average='weighted'表示計(jì)算加權(quán)平均值,權(quán)重由每個(gè)類別的樣本數(shù)決定。3數(shù)據(jù)挖掘:回歸評(píng)估指標(biāo)3.1回歸評(píng)估指標(biāo)3.1.1均方誤差(MSE)與均方根誤差(RMSE)均方誤差(MSE)和均方根誤差(RMSE)是評(píng)估回歸模型預(yù)測精度的常用指標(biāo)。MSE計(jì)算的是預(yù)測值與真實(shí)值之間的差的平方的平均值,而RMSE是MSE的平方根。公式MSE:1RMSE:代碼示例importnumpyasnp
fromsklearn.metricsimportmean_squared_error
#假設(shè)真實(shí)值和預(yù)測值
y_true=np.array([3,-0.5,2,7])
y_pred=np.array([2.5,0.0,2,8])
#計(jì)算MSE
mse=mean_squared_error(y_true,y_pred)
print(f'MSE:{mse}')
#計(jì)算RMSE
rmse=np.sqrt(mse)
print(f'RMSE:{rmse}')3.1.2平均絕對(duì)誤差(MAE)平均絕對(duì)誤差(MAE)是預(yù)測值與真實(shí)值之間差的絕對(duì)值的平均值,它對(duì)異常值不敏感。公式代碼示例fromsklearn.metricsimportmean_absolute_error
#使用相同的y_true和y_pred
mae=mean_absolute_error(y_true,y_pred)
print(f'MAE:{mae}')3.1.3R平方(R^2)與調(diào)整R平方R平方(R^2)衡量模型解釋的變異量與總變異量的比例,范圍在0到1之間,值越接近1表示模型擬合越好。調(diào)整R平方是對(duì)R平方的修正,考慮了模型復(fù)雜度的影響,通常在多變量回歸中使用。公式R^2:1調(diào)整R^2:1?1?R代碼示例fromsklearn.metricsimportr2_score
#計(jì)算R^2
r2=r2_score(y_true,y_pred)
print(f'R^2:{r2}')
#計(jì)算調(diào)整R^2
p=1#假設(shè)模型中有一個(gè)參數(shù)
adjusted_r2=1-(1-r2)*(len(y_true)-1)/(len(y_true)-p-1)
print(f'AdjustedR^2:{adjusted_r2}')3.1.4殘差分析殘差分析是檢查回歸模型假設(shè)的有效性,包括殘差的正態(tài)性、均值為0、方差恒定等。代碼示例importmatplotlib.pyplotasplt
fromscipy.statsimportnorm
#計(jì)算殘差
residuals=y_true-y_pred
#繪制殘差圖
plt.scatter(y_pred,residuals)
plt.axhline(y=0,color='r',linestyle='--')
plt.xlabel('PredictedValues')
plt.ylabel('Residuals')
plt.title('ResidualPlot')
plt.show()
#繪制殘差的正態(tài)概率圖
norm_prob_plot=bplot(residuals,plot=plt)
plt.title('NormalProbabilityPlotofResiduals')
plt.show()以上代碼示例展示了如何使用Python的numpy,scikit-learn,matplotlib和scipy庫來計(jì)算和可視化回歸模型的評(píng)估指標(biāo)。通過這些指標(biāo),我們可以更全面地理解模型的性能和可靠性。4數(shù)據(jù)挖掘:分類與回歸的評(píng)估指標(biāo)4.1評(píng)估指標(biāo)的選擇與應(yīng)用4.1.1指標(biāo)選擇的考量因素在數(shù)據(jù)挖掘中,選擇正確的評(píng)估指標(biāo)對(duì)于衡量模型的性能至關(guān)重要。不同的問題類型(如分類或回歸)和業(yè)務(wù)需求可能要求不同的評(píng)估指標(biāo)。以下是一些選擇評(píng)估指標(biāo)時(shí)需要考慮的因素:問題類型:分類問題通常使用準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)等指標(biāo);回歸問題則傾向于使用均方誤差(MSE)、均方根誤差(RMSE)、平均絕對(duì)誤差(MAE)等。數(shù)據(jù)不平衡:在數(shù)據(jù)不平衡的情況下,準(zhǔn)確率可能不是最佳選擇,因?yàn)槟P涂赡軆H僅通過預(yù)測多數(shù)類就能獲得較高的準(zhǔn)確率。此時(shí),精確率、召回率或AUC-ROC曲線可能更為合適。業(yè)務(wù)需求:根據(jù)業(yè)務(wù)場景,可能更重視模型的某一方面性能。例如,在醫(yī)療診斷中,召回率可能比精確率更重要,因?yàn)槁┰\的代價(jià)可能遠(yuǎn)高于誤診。模型解釋性:某些指標(biāo)如混淆矩陣可以提供模型預(yù)測的詳細(xì)信息,有助于理解模型的錯(cuò)誤類型,這對(duì)于模型的改進(jìn)和解釋性非常重要。4.1.2實(shí)際案例分析分類問題:心臟病預(yù)測假設(shè)我們正在構(gòu)建一個(gè)模型,用于預(yù)測患者是否患有心臟病。數(shù)據(jù)集包含多個(gè)特征,如年齡、性別、膽固醇水平等,以及一個(gè)二元標(biāo)簽(有病或無?。?。#導(dǎo)入必要的庫
importpandasaspd
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.ensembleimportRandomForestClassifier
fromsklearn.metricsimportaccuracy_score,precision_score,recall_score,f1_score,roc_auc_score
#加載數(shù)據(jù)
data=pd.read_csv('heart_disease_data.csv')
#數(shù)據(jù)預(yù)處理
#假設(shè)數(shù)據(jù)已經(jīng)清洗,特征選擇完成
#劃分?jǐn)?shù)據(jù)集
X=data.drop('target',axis=1)
y=data['target']
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)
#訓(xùn)練模型
model=RandomForestClassifier(random_state=42)
model.fit(X_train,y_train)
#預(yù)測
y_pred=model.predict(X_test)
#評(píng)估模型
accuracy=accuracy_score(y_test,y_pred)
precision=precision_score(y_test,y_pred)
recall=recall_score(y_test,y_pred)
f1=f1_score(y_test,y_pred)
roc_auc=roc_auc_score(y_test,y_pred)
print(f'Accuracy:{accuracy}')
print(f'Precision:{precision}')
print(f'Recall:{recall}')
print(f'F1Score:{f1}')
print(f'ROCAUCScore:{roc_auc}')在這個(gè)案例中,我們使用了多種評(píng)估指標(biāo)來全面評(píng)估模型的性能。由于心臟病預(yù)測是一個(gè)高風(fēng)險(xiǎn)領(lǐng)域,我們可能更關(guān)注模型的召回率和AUC-ROC,以確保盡可能多地識(shí)別出真正的心臟病患者?;貧w問題:房價(jià)預(yù)測在房價(jià)預(yù)測的回歸問題中,我們可能使用不同的評(píng)估指標(biāo)來衡量模型的預(yù)測誤差。#導(dǎo)入必要的庫
importpandasaspd
fromsklearn.model_selectionimporttrain_test_split
fromsklearn.linear_modelimportLinearRegression
fromsklearn.metricsimportmean_squared_error,mean_absolute_error,r2_score
#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年電動(dòng)泥漿泵行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年電信服務(wù)外包行業(yè)市場深度分析及發(fā)展策略研究報(bào)告
- 2024-2030年生物質(zhì)燃料項(xiàng)目可行性研究咨詢報(bào)告
- 2024-2030年現(xiàn)磨豆?jié){機(jī)市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報(bào)告
- 2024-2030年環(huán)衛(wèi)清潔設(shè)備產(chǎn)業(yè)市場發(fā)展分析及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2024-2030年狗復(fù)合維生素及補(bǔ)充劑行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年物業(yè)管理產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 出軌方案問題研究報(bào)告
- 2024-2030年熱致變色智能玻璃行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年炭黑行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 第二節(jié)中國的氣候2季風(fēng)
- 幕墻工程外懸軌道吊裝方案2018年316
- 微課錄制腳本模板
- 常見英文面試問題109道及答案
- 國內(nèi)外主流ERP軟件對(duì)比分析報(bào)告
- 電力設(shè)備結(jié)構(gòu)及原理
- 直流屏原理ppt
- 油煙機(jī)清洗合同協(xié)議書
- excel斜線表頭模版
- 珠海市斗門區(qū)農(nóng)村宅基地和村民住房建設(shè)
- 土壤重金屬污染.PPT
評(píng)論
0/150
提交評(píng)論