|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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
复制代码
运行结果如下
C:/Users/Thankpad/Desktop/捕获.png |
|