早上过来略微折腾了一下,发现matlab自带的genfis2效果很是不错,将xBounds(数据点相邻的距离)设为0.2就可以出来28条规则了,效果和gabl至今最好的结果相比也差不了多少,速度上更是不用说了,不夸张的说,快了N倍(N>>3600)!!
下面要好好准备一下图表来说明一下效果,再加上自适应改变xBounds的算法,参照"基于层次划分的最佳聚类数确定方法"一文的思想,根据驾驶行为中数据点分布的特点,给出分组效果评价的新指标,来完成第二篇小论文~~
回想一下,genfis2把“数据分簇->训练->组合->再训练”的过程简化成了“数据分簇->构建FIS”两步,当然我还可以用训练权重的方法再加以调整,得到更高的逼近精度,但从泛化的角度来考虑,一味追求逼近精度是没有必要的~~
这样才能上升到理论高度,也是对算法的一个总结和提高,哈哈
2008年2月28日星期四
2008年2月25日星期一
优化权重参数
权重参数的个数等于规则数,也等于工作点的数目。比优化同样的工作点参数要简单的多(一个工作点需要10个基因,十几个工作点就需要上百个基因,而同样的工作点权重参数只要十分之一)!
因此,同样采用遗传算法对权重进行优化,只需要二、三十个基因即可,且权重的变化范围固定为[0,1],实行起来也容易,用标准的GA即可。
今晚搞定!
因此,同样采用遗传算法对权重进行优化,只需要二、三十个基因即可,且权重的变化范围固定为[0,1],实行起来也容易,用标准的GA即可。
今晚搞定!
合并后的结果
终于看到合并后的结果了!实事求是的说,结果并不令人振奋!对于长数据来说,效果还好一些,而对于短数据则要是相当的差了!
不过这也在我的预料之内,还需要进行权值的调整来得到好的结果~
这一工作今天完成,借鉴前面的优化算法,应该能很快的完成。
再之后就是把数据分类算法做好,将几个环节串联起来:数据分类->优化模型参数->合并模型参数->调整权值,这样就可以完整的实现TSK模型的构建和标定。
不过这也在我的预料之内,还需要进行权值的调整来得到好的结果~
这一工作今天完成,借鉴前面的优化算法,应该能很快的完成。
再之后就是把数据分类算法做好,将几个环节串联起来:数据分类->优化模型参数->合并模型参数->调整权值,这样就可以完整的实现TSK模型的构建和标定。
2008年2月23日星期六
这一篇的主题
前一篇主要把TSK引入车辆跟驰模型,下一步是要完善它,一方面从构建方法上,一方面从结果分析上。
构建方法上要利用数据分类算法将数据先分成不同部分,再针对各部分进行建模,这样可以显著提高建模速度和质量,因为原来的方法随着分组的增加,染色体长度会迅速增加,很快就到达一个难以处理的复杂程度,这时的优化速度和效果都会下降。采用事先数据分类的方法,可以有效减小分组,可以多线程运算不同的数据分组,大大提高效率。不过要注意的是最后将各分类的结果组合起来时效果如何尚不得知,可能精度并不高,这时可以考虑对各子规则的权重再进行一次优化,使得最后的结果也能最优。
今天的工作是第一步工作,算是一个测试吧,将前面两段不同数据得出的模型参数组合到一起,生成一个新的模型,然后看对两段数据组合的效果如何。如果效果不佳,则尝试对各规则权重进行再优化。
这项工作做好后,开始找合适的数据分类算法,根据状态空间内数据点的聚集情况分类,对于那些不太靠谱(不特别接近于任何一个分类)的点,可以重复放入多个周围的分类中,作为一个工作点的临界数据点来处理。
构建方法上要利用数据分类算法将数据先分成不同部分,再针对各部分进行建模,这样可以显著提高建模速度和质量,因为原来的方法随着分组的增加,染色体长度会迅速增加,很快就到达一个难以处理的复杂程度,这时的优化速度和效果都会下降。采用事先数据分类的方法,可以有效减小分组,可以多线程运算不同的数据分组,大大提高效率。不过要注意的是最后将各分类的结果组合起来时效果如何尚不得知,可能精度并不高,这时可以考虑对各子规则的权重再进行一次优化,使得最后的结果也能最优。
今天的工作是第一步工作,算是一个测试吧,将前面两段不同数据得出的模型参数组合到一起,生成一个新的模型,然后看对两段数据组合的效果如何。如果效果不佳,则尝试对各规则权重进行再优化。
这项工作做好后,开始找合适的数据分类算法,根据状态空间内数据点的聚集情况分类,对于那些不太靠谱(不特别接近于任何一个分类)的点,可以重复放入多个周围的分类中,作为一个工作点的临界数据点来处理。
2008年2月20日星期三
scala,让我的旧代码起死回生?
前几天就看到scala了,今天下午看了看它的教程,感觉和python有点像,都是能将函数当作值来传递的~JTSS的代码写到一半就停止了,现在亟须重新开始,可是前面的体验让我对写java代码有点厌倦了。现在有了scala,更简洁的语法,新的函数式编程方式,或许能成为JTSS起死回生的契机!
下面一边完成第二、三篇文章,一边学习scala,在三月份之前完成这两项,三月份花10天搞定JTSS,然后建立一个简单的仿真应用(场面监控),以此项目作为工程背景。至于其他的东西,待搞定这些后再看~~
下面一边完成第二、三篇文章,一边学习scala,在三月份之前完成这两项,三月份花10天搞定JTSS,然后建立一个简单的仿真应用(场面监控),以此项目作为工程背景。至于其他的东西,待搞定这些后再看~~
订阅:
博文 (Atom)