train_data = r["arr_0"] train_label = r["arr_1"] test_data = r["arr_2"] test_label = r["arr_3"] label_num = r["arr_4"] train_size = r["arr_5"] test_size = r["arr_6"] ####################################################################################################### index = range(0, 10) #shuffle datatemp = np.zeros((train_size + test_size, 10)) labeltemp = np.zeros(train_size + test_size) datatemp[range(0, train_size), :] = train_data datatemp[range(train_size, train_size + test_size), :] = test_data labeltemp[range(0, train_size)] = train_label labeltemp[range(train_size, train_size + test_size)] = test_label total = shuffledata(datatemp, labeltemp, train_size + test_size, 10) data = total[:, [4, 6]] label = total[:, 10] ####################################################################################################### model = svm_train(label, data, '-t 0') #线性核函数 print("Training data predict:") predict = svm_predict(label, data, model) ####################################################################################################### x_begin = min(data[:, 0]) #扫描分界面位置 x_end = max(data[:, 0]) y_begin = min(data[:, 1]) - 3 y_end = max(data[:, 1]) + 1 pointnumber = 1200 linex = np.linspace(x_begin, x_end, pointnumber) liney = np.zeros(pointnumber) linextest = np.ones(pointnumber)
from matplotlib import pyplot as plt from shuffle_fy import shuffledata from draw import plotall from mpl_toolkits.mplot3d import Axes3D #r=np.load("2genes_withoutnorm.npz") r = np.load("2genes.npz") train_data = r["arr_0"] train_label = r["arr_1"] test_data = r["arr_2"] test_label = r["arr_3"] label_num = r["arr_4"] train_size = r["arr_5"] test_size = r["arr_6"] ####################################################################################################### index = range(0, 2) #shuffle train_total = shuffledata(train_data, train_label, train_size, 2) train_data = train_total[:, index] train_label = train_total[:, 2] ####################################################################################################### times = 200 #改变线性核的C cmax = 10 cmin = 0.1 cnum = 100 scores = np.zeros(cnum) for i in range(1, cnum + 1): c = i * cmin command = '-q -t 0 -v 10 -c ' + str(c) for k in range(0, times): acc = svm_train(train_label, train_data, command) scores[i - 1] = scores[i - 1] + acc / 100 scores[i - 1] = scores[i - 1] / times