class Adaboosting中demo_train方法中要调用同个类中的loadDataSet方法,但是根本没进到程序之中,求教是什么原因,谢谢大佬们了
demo_train的代码如下
def demo_train(self):
print("已进入到了内部函数")
print(self.model)
if self.model==None:
self.model="test.txt"
dataArr, LabelArr = self.loadDataSet(self.model)
weakClassArr, aggClassEst = Adaboosting.adaBoostTrainDS(dataArr, LabelArr)
# from my_adaboosting_SVM_ROC import adaClassify
print("正在训练模型...")
predictions = self.adaClassify(dataArr, weakClassArr)
errArr = np.mat(np.ones((len(dataArr), 1)))
number=1-float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100)
print('训练集的错误率:%.3f%%' % float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100))
# print("33333333")
print(self.train)
if self.train==None:
self.train="test6.txt"
# print("444444444")
print(self.train)
# train = "test6.txt"
testArr, testLabelArr = self.loadDataSet(self.train)
predictions = self.adaClassify(testArr, weakClassArr)
print(predictions)
errArr = np.mat(np.ones((len(testArr), 1)))
number1=1-float(errArr[predictions != np.mat(testLabelArr).T].sum() / len(testArr) * 100)
print('测试集的错误率:%.3f%%' % float(errArr[predictions != np.mat(testLabelArr).T].sum() / len(testArr) * 100))
from my_adaboosting_SVM_ROC import plotROC
plotROC(aggClassEst.T, LabelArr)
return number ,number1
loadDataSet的代码如下
# 导入数据
def loadDataSet(fileName):
print("hhhhhhhhhhhhhhhhh")
numFeat = len((open(fileName).readline().split('\t')))
dataMat = [];
labelMat = []
fr = open(fileName)
for line in fr.readlines():
lineArr = []
curLine = line.strip().split('\t')
for i in range(numFeat - 1):
lineArr.append(float(curLine[i]))
dataMat.append(lineArr)
labelMat.append(float(curLine[-1]))
return dataMat, labelMat
运行结果: