分别用sklearn和tensorflow做房价预测

2018-03-15 13:50:57 浏览数 (1)

本篇是后面用tensorflow做回归时的一个参照,忍不住要说的是sklearn真是简单好用,要不是他没有卷积cnn等时髦模型,真是不想用其他家的了。

经典的sklearn集成模型

结果:

真是又快又准啊!由于该数据的已经是被打乱了,非原顺序,所以看起来是这样

另外参数优选的代码被注释掉了,感兴趣的可以自己调参。

卷积神经网路CNN

既然sklearn已经足够简单高效,为啥要用卷积神经网络(cnn)呢,江湖传言它有两个大优势:

1、sklearn需要人工进行特征优选,cnn会进行自动优选特征

2、随着训练数据的增多,sklearn的准确性就没啥大变化了,cnn则是越来越准,没有瓶颈。说实在的就boston房价这个数据也就506行,13个特征(列),对cnn来说实在太少了,没个10万行数据,都看不出它的优势;

另外cnn虽然不用人工特征优选,但是搭建它的拓扑结构实在是个难搞的事,最让人炸裂的是tensorflow的结构,真是让人费解,关于它的结构网上很多介绍,我就不说了,但是用cnn做回归计算的文章非常罕见,请点赞!上代码

#参考http://blog.csdn.net/jerry81333/article/details/52979206 周莫烦的系列视频教程,跪地推荐

结果是这样的:

上文中只训练了200次,其实正常来说都是1000次起的,无奈手里只有小mac mini,显卡是N卡的同学可以用tensorflow的gpu版跑跑试试。

RNN之递归神经网路LSTM

在tensorflow里RNN才是做回归计算的正规军,其中LSTM更是让人工智能有了记忆,如果cnn最适合做的是图像识别,那么LSTM就是视频识别。网上的教程多是用正余弦数据在做预测,输入输出都是一维,我这用波士顿房价,输入是13个特征!

注意与前面两个模型不同的是,没有用train_test_split把训练数据分割,而是用的时序数据。

lstm输入和输出都是时序数据,是尊重时间的,和上两篇用的交叉数据集是不一样的,所以结果是这样的:

via:http://blog.csdn.net/baixiaozhe/article/details/54410313

0 人点赞