类的相关问题
class L2SVM:def __init__(self,X,Y,sigma=0.8,toler=1e-5,gamma=0.8):
'''
:param X: 训练样本
:param Y: 样本标签
:param sigma: 高斯核函数的sigma
:param gamma: 先验概率
:param toler: 松弛变量
'''
self.m, self.n = X.shape# m为样本数(60000),n为特征数(784=28*28)
self.X = X
self.Y = Y# 转化为列向量
self.sigma = sigma
self.gamma = gamma
self.toler = toler
self.alpha = [0 for _ in range(len(Y))]# 每一个样本对应的拉格朗日系数alpha
self.K = self.calKernel()# 高斯核矩阵,存放代替内积的核函数值
self.supportVector = []# 支持向量的索引,用于预测。因为W只和alpha>0的样本有关。if __name__ == "__main__":
# 获取当前时间
start = time.time()
Data, label = loadData('heart.txt')
X_train, X_test, y_train, y_test = train_test_split(Data, label, test_size=0.2)
print('Init SVM classifier')
svm = L2SVM(X_train,y_train)
print('start to train')
svm.train(100)
print('start to test')
svm.test(X_test, y_test)
# 获取结束时间
end = time.time()
print('run time:', end - start)
一个是我创建的类在主函数调用时报错Traceback (most recent call last):File "D:/code/pycharm/L2_svm.py", line 16, in <module> class L2SVM:File "D:/code/pycharm/L2_svm.py", line 243, in L2SVM svm = L2SVM(X_train,y_train)NameError: name 'L2SVM' is not defined
该怎么改
if __name__ == "__main__":
# 获取当前时间
start = time.time()
Data, label = loadData('heart.txt')
X_train, X_test, y_train, y_test = train_test_split(Data, label, test_size=0.2)
print('Init SVM classifier')
svm = L2SVM(X_train,y_train)
print('start to train')
svm.train(100)
print('start to test')
svm.test(X_test, y_test)
# 获取结束时间
end = time.time()
print('run time:', end - start)主函数
我真的不想秃头 发表于 2022-6-7 14:01
if __name__ == "__main__":
# 获取当前时间
start = time.time()
函数都没发全
loadData
train_test_split 支持向量机?
页:
[1]