ML--SVM学习小结(二)

-上周推导和总结了svm的基本算法,有了基本的一些概念。这周会贴出一些代码和对KKT条件的一些解读,当然理解还不够深刻,后面有机会会继续做一些探讨。在上周二次规划的课堂作业中,老师也对离散和连续问题之间的关系做了一些描述,有了不同角度的认识。同时入门了一下神经网络,不过这周不打算写出来,还没有对具体的算法做一些具体的探讨。这周毕设的题目出来了,任务是在特定的课题背景下做辐照度预测,下面也会贴一些本周自己做的一些调研和思考。

代码梳理和KKT条件的理解

svm算法本身很有条理,但是和前面一些算法对比起来,他的复杂程度要高出一些,原因在于差值的处理和内外循环的逻辑关系。smo算法的核心其实在KKT条件的解读,它选择两个alpha的理由是围绕这个条件展开的即违背KKT条件程度越大则目标函数值增长越快(这是一篇论文中推出的性质),在代码中体现在对于偏差影响力即具有最大步长。KKT条件是拉格朗日乘子法的泛化,同时也决定了只有对应alpha大于0的时候的这些解才是支持向量上的点,否则alpha都为0。这样也说明了大部分数据点对于超平面的建立没有帮助,只有支持向量。
判断条件
插值的求解
更新alpha

fXi = float(multiply(alphas,labelMat).T*\(dataMatrix*dataMatrix[i,:].T)) + b#目标函数值
Ei = fXi - float(labelMat[i])      #与样本插值
if (labelMat[i] != labelMat[j]):
   L = max(0, alphas[j] - alphas[i])
   H = min(C, C + alphas[j] - alphas[i])
else:
   L = max(0, alphas[j] + alphas[i] - C)
   H = min(C, alphas[j] + alphas[i])
alphas[i] += labelMat[j]*labelMat[i]*(alphaJold - alphas[j])#alpha1的更新
alphas[j] -= labelMat[j]*(Ei - Ej)/eta
alphas[j] = clipAlpha(alphas[j],H,L)#alpha2的更新

毕设初步思考

-做了一点点调研。从课题背景摘出来,任务可以简化成评估和预测。
-数据源是nrel官网上的以及nasa官网上(nrel可以直接下载,nasa的数据有些好像只能查询,在考虑爬出来)。然后就是算法。
-初步有个想法,对于非直接的评估应该可以采用特征提取的方法,用类似PCA这类方法找到一个相关性高的参量来表征,然后算出一个definite result。如果是对本身的评估,就找到数据的某种统计特征分析;然后就是预测,本以为是单纯的时间序列预测。开学到现在听了几次学姐们的报告,其中主要矛盾似乎落在了对于阴晴天的分类,里面的一些问题由于没有开始着手做,所以还有很多问题没有考虑到。网上对于这类问题,似乎倾向于用神经网络,特别是一些带有记忆特性的,例如LSTM这类模型。
-当然对于有的明显特征的话,就不能忽略,能用经典的ml算法尝试也未尝不可,但重点我觉得在于对参数的严格考证。之前做的几个算法,对于模型本身的推导并没有太复杂的过程,然而在参数设计以及参数的求解上却花费了很大的功夫,这可能也是ML在特征工程上的一个问题吧。
-下面要做的:(1)数据预处理,初步先用python做,格式的话用numpy或者pandas我觉得都还行;(2)可视化;(3)套用几个模型,看看结果;(4)问题分析,选择算法。还有一段很长的路要走。

小插曲

-最近帮聪哥看文章,虽说是什么资本资产定价模型,有些思想我觉得还是相通的,特别是在假设、建模、参数等方面。虽说看上去有点偏离主题,但是对于这种学科交叉密集的学科拓宽视野感觉也很有必要,课题背景可以千差万别,modeling可以万变不离其宗。=。=随便说说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值