Java實訓代碼、答案,如果能夠幫到您,希望可以點個贊?。。?/strong>?
如果有問題可以csdn私聊或評論?。?!感謝您的支持
第1關(guān):為什么要有訓練集與測試集
1、下面正確的是?( D )
A、將手頭上所有的數(shù)據(jù)拿來訓練模型,預測結(jié)果正確率最高的模型就是我們所要選的模型。
B、將所有數(shù)據(jù)中的前百分之70拿來訓練模型,剩下的百分之30作為測試集,預測結(jié)果正確率最高的模型就是我們所要選的模型。
C、將所有數(shù)據(jù)先隨機打亂順序,一半用來訓練模型,一半作為測試集,預測結(jié)果正確率最高的模型就是我們所要選的模型。
D、將所有數(shù)據(jù)先隨機打亂順序,百分之80用來訓練模型,剩下的百分之20作為測試集,預測結(jié)果正確率最高的模型就是我們所要選的模型。
2、訓練集與測試集的劃分對最終模型的確定有無影響?( A )
A、有
B、無
第2關(guān):欠擬合與過擬合
1、請問,圖中A與B分別處于什么狀態(tài)?( B )
A、欠擬合,欠擬合
B、欠擬合,過擬合
C、過擬合,欠擬合
D、過擬合,過擬合
2、如果一個模型在訓練集上正確率為99%,測試集上正確率為60%。我們應(yīng)該怎么做?( ABD )
A、加入正則化項
B、增加訓練樣本數(shù)量
C、增加模型復雜度
D、減少模型復雜度
第3關(guān):偏差與方差
如果一個模型,它在訓練集上正確率為85%,測試集上正確率為80%,則模型是過擬合還是欠擬合?其中,來自于偏差的誤差為?來自方差的誤差為?( B )
A、欠擬合,5%,5%
B、欠擬合,15%,5%
C、過擬合,15%,15%
D、過擬合,5%,5%
第4關(guān):驗證集與交叉驗證
1、假設(shè),我們現(xiàn)在利用5折交叉驗證的方法來確定模型的超參數(shù),一共有4組超參數(shù),我們可以知道,5折交叉驗證,每一組超參數(shù)將會得到5個子模型的性能評分,假設(shè)評分如下,我們應(yīng)該選擇哪組超參數(shù)?( D )
A、子模型1:0.8 子模型2:0.7 子模型3:0.8 子模型4:0.6 子模型5:0.5
B、子模型1:0.9 子模型2:0.7 子模型3:0.8 子模型4:0.6 子模型5:0.5
C、子模型1:0.5 子模型2:0.6 子模型3:0.7 子模型4:0.6 子模型5:0.5
D、子模型1:0.8 子模型2:0.8 子模型3:0.8 子模型4:0.8 子模型5:0.6
2、下列說法正確的是?( BCD )
A、相比自助法,在初始數(shù)據(jù)量較小時交叉驗證更常用。
B、自助法對集成學習方法有很大的好處
C、使用交叉驗證能夠增加模型泛化能力
D、在數(shù)據(jù)難以劃分訓練集測試集時,可以使用自助法
第5關(guān):衡量回歸的性能指標
下列說法正確的是?( AB )
A、相比MSE指標,MAE對噪聲數(shù)據(jù)不敏感
B、RMSE指標值越小越好
C、R-Squared指標值越小越好
D、當我們的模型不犯任何錯時,R-Squared值為0
第6關(guān):準確度的陷阱與混淆矩陣
import numpy as np
def confusion_matrix(y_true, y_predict):
'''
構(gòu)建二分類的混淆矩陣,并將其返回
:param y_true: 真實類別,類型為ndarray
:param y_predict: 預測類別,類型為ndarray
:return: shape為(2, 2)的ndarray
'''
#********* Begin *********#
def TN(y_true, y_predict):
return np.sum((y_true == 0) & (y_predict == 0))
def FP(y_true, y_predict):
return np.sum((y_true == 0) & (y_predict == 1))
def FN(y_true, y_predict):
return np.sum((y_true == 1) & (y_predict == 0))
def TP(y_true, y_predict):
return np.sum((y_true == 1) & (y_predict == 1))
return np.array([
[TN(y_true, y_predict), FP(y_true, y_predict)],
[FN(y_true, y_predict), TP(y_true, y_predict)]
])
#********* End *********#
第7關(guān):精準率與召回率?
import numpy as np
def precision_score(y_true, y_predict):
'''
計算精準率并返回
:param y_true: 真實類別,類型為ndarray
:param y_predict: 預測類別,類型為ndarray
:return: 精準率,類型為float
'''
#********* Begin *********#
def TP(y_true, y_predict):
return np.sum((y_true ==1)&(y_predict == 1))
def FP(y_true,y_predict):
return np.sum((y_true ==0)&(y_predict==1))
tp =TP(y_true, y_predict)
fp =FP(y_true, y_predict)
try:
return tp /(tp+fp)
except:
return 0.0
#********* End *********#
def recall_score(y_true, y_predict):
'''
計算召回率并召回
:param y_true: 真實類別,類型為ndarray
:param y_predict: 預測類別,類型為ndarray
:return: 召回率,類型為float
'''
#********* Begin *********#
def FN(y_true, y_predict):
return np.sum((y_true ==1)&(y_predict == 0))
def TP(y_true,y_predict):
return np.sum((y_true ==1)&(y_predict==1))
fn =FN(y_true, y_predict)
tp =TP(y_true, y_predict)
try:
return tp /(tp+fn)
except:
return 0.0
#********* End *********#
第8關(guān):F1 Score?
import numpy as np
def f1_score(precision, recall):
'''
計算f1 score并返回
:param precision: 模型的精準率,類型為float
:param recall: 模型的召回率,類型為float
:return: 模型的f1 score,類型為float
'''
#********* Begin *********#
try:
return 2*precision*recall / (precision+recall)
except:
return 0.0
#********* End ***********#
第9關(guān):ROC曲線與AUC?
文章來源:http://www.zghlxwxcb.cn/news/detail-841092.html
import numpy as np
def calAUC(prob, labels):
'''
計算AUC并返回
:param prob: 模型預測樣本為Positive的概率列表,類型為ndarray
:param labels: 樣本的真實類別列表,其中1表示Positive,0表示Negtive,類型為ndarray
:return: AUC,類型為float
'''
#********* Begin *********#
a= list(zip(prob,labels))
rank =[values2 for values1,values2 in sorted(a, key=lambda x:x[0])]
rankList=[i+1 for i in range(len(rank))if rank[i] ==1]
posNum =0
negNum =0
for i in range(len(labels)):
if(labels[i]==1):
posNum+=1
else:
negNum+=1
auc= (sum(rankList)-(posNum*(posNum+1))/2)/(posNum*negNum)
return auc
#********* End *********#
第10關(guān):sklearn中的分類性能指標?
文章來源地址http://www.zghlxwxcb.cn/news/detail-841092.html
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score
def classification_performance(y_true, y_pred, y_prob):
'''
返回準確度、精準率、召回率、f1 Score和AUC
:param y_true:樣本的真實類別,類型為`ndarray`
:param y_pred:模型預測出的類別,類型為`ndarray`
:param y_prob:模型預測樣本為`Positive`的概率,類型為`ndarray`
:return:
'''
#********* Begin *********#
return accuracy_score(y_true, y_pred),precision_score(y_true, y_pred),recall_score(y_true, y_pred),f1_score(y_true, y_pred),roc_auc_score(y_true, y_prob)
#********* End *********#
到了這里,關(guān)于機器學習 --- 模型評估、選擇與驗證的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!