第二十一天学习进度--简单线性函数提取并模拟计算机复杂图像识别函数(2)

前天,用简单的sklearn中提供的线性回归分析的一个lineregress的模块对手写图片识别函数进行提取了之后,发现对应的函数并没有比较好的效果,今天打算通过改进,来增强提取的正确性。

sklearn中提供了不止简单的线性回归分析的模块,还有梯度下降回归,梯度上升回归,随机森林回归,极端森林回归等回归分析的方法,所以今天打算通过这4种回归模型的测试,来尝试提高计算机识别函数的正确性。(1)首先我们尝试梯度下降的回归分析方法

梯度下降的回归是sklearn中的以下模型

from sklearn import linear_model
model=linear_model.SGDRegressor()

简单线性函数提取并模拟计算机复杂图像识别函数(1)的数据的基础上,也就是minist的手写数据基础上提取对应的函数,尝试上述模型,代入数据获得对应数字的值的这个函数提取出来,过程没有用到神经网络,实验过程完全一致,这里就不再展示过程了

可以看到梯度下降依旧正确率不高,甚至低于线性回归分析的正确率

 

 

(2)梯度上升回归分析

from sklearn.ensemble import GradientBoostingRegressor
model=GradientBoostingRegressor()

依旧完全一致的实验过程,看看效果如何

 

可以看到正确率有了一点点的提升,不过这样的准确率还是完全不能入眼

距离相对比较好的函数提取还是有很大的距离

 

(3)随机森林回归

from sklearn.ensemble import RandomForestRegressor
model=RandomForestRegressor()

同样的过程提取手写图像识别函数效果如下:

 

 随机森林的回归分析直接将非线性函数的提取正确率翻了一番,意料之外...达到了昨天的最低要求了

 

(4)最后康康极端森林回归有没有更好的效果

from sklearn.ensemble import ExtraTreesRegressor
model=ExtraTreesRegressor()

效果:

 

 令人振奋的效果,一度达到了70%左右的正确率,这也就是说极端森林在非线性函数的拟合上有很好的效果,虽然不能完全达到100%,但是60%正确率...实在是太不可思议了

 

posted on 2020-07-30 19:45  Halone  阅读(227)  评论(0编辑  收藏  举报