from sklearn.cross_validation import KFold
def printing_Kfold_scores(x_train_data,y_train_data):
fold =KFold(len(y_train_data),5,shuffle=False)
for iteration, indices in enumerate(fold,start=1):
lr = LogisticRegression(C = c_param,penalty = 'l1')
lr.fit(x_train_data.iloc[indices[0],:],y_train_data.iloc[indices[0],:].values.ravel())
y_pred_undersample =lr.predict(x_train_data.iloc[indices[1],:].values)
recall_acc =recall_score(y_train_data.iloc[indices[1],:].values,y_pred_undersample)
recall_accs.append(recall_acc)
ModuleNotFoundError: No module named 'sklearn.cross_validation'
TypeError: __init__() got multiple values for argument 'shuffle'
KFold(n,5,shuffle=False) # n为总数,需要传入三个参数
fold = KFold(5,shuffle=False) # 无需传入n
from sklearn.model_selection import KFold
def printing_Kfold_scores(x_train_data,y_train_data):
fold = KFold(5,shuffle=False)
recall_accs = []
for iteration, indices in enumerate(fold.split(x_train_data)):
lr = LogisticRegression(C = c_param, penalty = 'l1')
lr.fit(x_train_data.iloc[indices[0],:],y_train_data.iloc[indices[0],:].values.ravel())
y_pred_undersample = lr.predict(x_train_data.iloc[indices[1],:].values)
recall_acc = recall_score(y_train_data.iloc[indices[1],:].values,y_pred_undersample)
recall_accs.append(recall_acc)
补充:
针对有人遇到TypeError:‘KFold’ object is not iterable这个问题,请注意以下标红部分是否做了修改。