acc_rem = [] #初始化精度列表 for ii in range(10): #data.target = data.target + 1 #stdsc = StandardScaler() #label_size = 0.5 (train_data, iter_data, test_data) = elmUtils.splitDataWithIter(data.data, data.target, label_size, 0.3) iter_y = BvsbUtils.KNNClassifierResult(train_data[0], train_data[1], iter_data[0]) bvsbc = BvsbClassifier(train_data[0], train_data[1], iter_data[0], iter_y, test_data[0], test_data[1], iterNum=0.1) bvsbc.createOSELM(n_hidden=1000, active_function="sigmoid") bvsbc.trainOSELMWithKNNButBvsb() print(f'OSELM-BVSB-KNN 正确率为{bvsbc.score(test_data[0], test_data[1])}') acc_temp = bvsbc.score(test_data[0], test_data[1]) #记录每次的精度 acc_rem.append(acc_temp) #将每次的精度存入列表 for i in acc_rem: print(f'{i*100:0.2f}', ) #打印每次精度 acc_mean = np.mean(acc_rem) #求出平均精度 print("{:.2f}".format(acc_mean * 100)) #打印平均精度 print('---------------------以上为OSELM-BVSB-KNN(10次)算法----------------------' ) #运行程序
data.data = StandardScaler().fit_transform(data.data) (train, iter, test) = elmUtils.splitDataWithIter(data.data, data.target, 0.2, 0.3) print(f'训练集大小为{train[1].size}') print(f'迭代训练集大小为{iter[1].size}') print(f'测试集大小为{test[1].size}') #tic = time.perf_counter_ns() bvsbc = BvsbClassifier(train[0], train[1], iter[0], iter[1], test[0], test[1], iterNum=0.1) bvsbc.createOSELM(n_hidden=1000) bvsbc.trainOSELMWithoutKNN() #toc = time.perf_counter_ns() print(f'OSELM-BVSB 正确率为{bvsbc.score(test[0], test[1])}') # print(f'OSELM-BVSB项目用时:{(toc - tic) / 1000 / 1000} ms') acc_temp = bvsbc.score(test[0], test[1]) #记录每次的精度 acc_rem.append(acc_temp) #将每次的精度存入列表 print("*****************************************************") for i in acc_rem: print(f'{i*100:0.2f}', ) #打印每次精度 acc_mean = np.mean(acc_rem) #求出平均精度 print("{:.2f}".format(acc_mean * 100)) #打印平均精度 print('---------------------以上为OSELM-BVSB算法----------------------') #运行程序
data = datasets.load_digits() stdc = StandardScaler() # 均值归一化 label_size = 0.3 data.data = stdc.fit_transform(data.data / 16.0) train, iter, test = elmUtils.splitDataWithIter(data.data, data.target, label_size, 0.2) Y_iter = BvsbUtils.KNNClassifierResult(train[0], train[1], iter[0]) print(Y_iter.size) tic = time.perf_counter_ns() bvsbc = BvsbClassifier(train[0], train[1], iter[0], Y_iter, test[0], test[1], iterNum=0.1) bvsbc.createELM(n_hidden=1000, activation_func="sigmoid", alpha=1.0, random_state=0) bvsbc.X_test = test[0] bvsbc.Y_test = test[1] bvsbc.trainELMWithKNNButBvsb() toc = time.perf_counter_ns() print(bvsbc.score(test[0], test[1])) print("ELM-BVSB 项目用时:%d" % ((toc - tic) / 1000 / 1000))
import numpy as np from sklearn.preprocessing import StandardScaler from elm import elmUtils import time print("------------") # digits = load_digits() data = datasets.load_breast_cancer() stdc = StandardScaler() # 均值归一化 data.data = stdc.fit_transform(data.data / 16.0) label_size=0.3 (train_data, iter_data, test_data) = elmUtils.splitDataWithIter(data.data,data.target, label_size, 0.2) tic = time.perf_counter_ns() bvsbc = BvsbClassifier(train_data[0], train_data[1], iter_data[0], iter_data[1], test_data[0], test_data[1], iterNum=0.1) bvsbc.createELM(n_hidden=1000, activation_func="tanh", alpha=1.0, random_state=0) bvsbc.X_test = test_data[0] bvsbc.Y_test = test_data[1] bvsbc.trainELMWithoutKNN() toc = time.perf_counter_ns() print("+++++++++++++++++++") print(bvsbc.score(test_data[0], test_data[1])) print("ELM-BVSB 项目用时:%d" % ((toc - tic) / 1000 / 1000))