@cww97
2017-10-31T00:07:07.000000Z
字数 1974
阅读 981
机器学习
陈伟文 10152510217
于从秦皇岛回上海的高铁上
这次作业第一部分,import一个svm,然后弄个数据,test一下svm的性能
使用了前几次作业一直用的红酒数据,按照惯例,原数据quality是$[0,10)\$的,为了偷懒方便,把他二值化一下,然后直接sum(abs)
一通操作求准确率,很方便。前面11维度是数据,后面是酒的quality
听说彭先生安装sklearn费了老大功夫,诶,现成的anoconda不用实在是太妙chun了太妙chun了。
这次作业相对于上次的码量,简直是天堂地狱好吗,几行解决战斗,不知该干嘛分几个核函数试试效果
前面四分之三当训练数据,后面四分之一为测试数据
# the first 11 dimesion is data, then is label
ATTR_DIM = 11
def svm_go():
clf_rbf = svm.SVC(kernel='rbf')
clf_lin = svm.SVC(kernel='linear')
clf_sig = svm.SVC(kernel='sigmoid')
lines = open('wine.csv').readlines()
raw = np.zeros([len(lines), ATTR_DIM + 1])
for idx, line in enumerate(lines):
this_line = np.array(line.split(';'), np.float32)
raw[idx] = this_line
raw[idx][ATTR_DIM] = 1 if raw[idx][ATTR_DIM] > 5 else 0 # 二值化
print(raw)
np.random.shuffle(raw)
train_count = len(lines) * 3 // 4
train, test = np.transpose(raw[0:train_count]), np.transpose(raw[train_count:])
data_train, label_train = np.transpose(train[0:ATTR_DIM]), np.array(train[ATTR_DIM], np.int32)
data_test, label_test = np.transpose(test[0:ATTR_DIM]), np.array(test[ATTR_DIM], np.int32)
clf_rbf.fit(data_train, label_train)
res_rbf = int(np.sum(np.abs(label_test - clf_rbf.predict(data_test))))
clf_lin.fit(data_train, label_train)
res_lin = int(np.sum(np.abs(label_test - clf_lin.predict(data_test))))
clf_sig.fit(data_train, label_train)
res_sig = int(np.sum(np.abs(label_test - clf_sig.predict(data_test))))
total = len(label_test)
print('with kernel function RBF : accuracy = %.2f%%' % ((total - res_rbf) * 100 / total))
print('with kernel function linear: accuracy = %.2f%%' % ((total - res_lin) * 100 / total))
print('with kernel function Sigmoid:accuracy = %.2f%%' % ((total - res_sig) * 100 / total))
with kernel function RBF : accuracy = 70.25%
with kernel function linear: accuracy = 76.25%
with kernel function Sigmoid:accuracy = 56.50%
心态崩了,心态崩了,正确率很难令人满意
2017年10月30日
(本段几wan乎quan看不懂,看了大量ktt条件的blog,依然有些懵逼)
非等式约束写成拉格朗日乘子式,取最优解要满足两个条件
拉格朗日乘子式对所有非拉格朗日参数的一阶偏导为0
非等式约束对应的拉格朗日项,要么非等式的等号成立,要么对应的拉格朗日参数为0
所以得到完整KT条件
对所有的i