原標題:分別用sklearn和tensorflow做房價預測
本篇是后面用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返回搜狐,查看更多
責任編輯: