#十折交叉验证
from sklearn.model_selection import KFold
kf = KFold(n_splits=10, shuffle=True)
#n_splits表示把数据集分为多少份
#shuffle表示是否随机划分,如果n_splits=2,shuffle=false(默认),则rang(1,10)分为(1,5),(6,10)
for (train, test) in kf.split(data):
#训练
#验证
#归一化
from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
data = min_max_scaler.fit_transform(data)
#用br算法做求auc的示例
from sklearn.metrics import roc_auc_score
from skmultilearn.problem_transform import BinaryRelevance
from sklearn.svm import SVC
br = BinaryRelevance(SVC())
#trainx,trainy,testx,testy为事先存储好的数据
br.fit(trainx, trainy)
predy = br.predict(testx)
#这里predy的shape是tuple,所以不能用np.array(predy)来把predy转化为array,而只能用predy.toarray()
micro_auc = roc_auc_score(testy, predy.toarray(), average='micro')
#y_true : array
#y_score : array
#average : string, [None, ‘micro’, ‘macro’ (default), ‘samples’, ‘weighted’]