机器学习对价格预测做模型与应用
说到价格预测,我们首先能想到的就是kaggle一个比赛,关于房价的预测,不过在房地产行业这么火热的时代,做一个中国版的房价预测也很有意思,但是博主想做的是一个对二手设备价格的预测,通过对二手设备的类型、年代、用过的时间、地理位置等各种特征,进行一个建模,来预测售价,不过这是个比较容易点的应用,未来对于能通过一张或者几张图片就预测二手设备的价格,我觉得这个是比较有挑战的。下面对价格的预测主要通过线性
·
说到价格预测,我们首先能想到的就是kaggle一个比赛,关于房价的预测,不过在房地产行业这么火热的时代,做一个中国版的房价预测也很有意思,但是博主想做的是一个对二手设备价格的预测,通过对二手设备的类型、年代、用过的时间、地理位置等各种特征,进行一个建模,来预测售价,不过这是个比较容易点的应用,未来对于能通过一张或者几张图片就预测二手设备的价格,我觉得这个是比较有挑战的。
下面对价格的预测主要通过线性回归模型、决策树(回归树)模型、xgboost、神经网络、支持向量回归等算法模型,用sk-learn包来构建。
1.线性回归
from sklearn.linear_model import LinearRegression
2.决策树回归
from sklearn.tree import DecisionTreeRegressor
3. 支持向量回归
from sklearn.svm import SVR
linear_svr = SVR(kernel='linear')
linear_svr.fit(x_train, y_train.ravel())
linear_svr_predict = linear_svr.predict(x_test)
4. 梯度提升回归算法
import numpy as np
from sklearn.ensemble import GradientBoostingRegressor
gbdt=GradientBoostingRegressor(
loss='ls'
, learning_rate=0.1
, n_estimators=100
, subsample=1
, min_samples_split=2
, min_samples_leaf=1
, max_depth=3
, init=None
, random_state=None
, max_features=None
, alpha=0.9
, verbose=0
, max_leaf_nodes=None
, warm_start=False
)
train_feat=np.genfromtxt("train_feat.txt",dtype=np.float32)
train_id=np.genfromtxt("train_id.txt",dtype=np.float32)
test_feat=np.genfromtxt("test_feat.txt",dtype=np.float32)
test_id=np.genfromtxt("test_id.txt",dtype=np.float32)
print train_feat.shape,rain_id.shape,est_feat.shape,est_id.shape
gbdt.fit(train_feat,train_id)
pred=gbdt.predict(test_feat)
total_err=0
for i in range(pred.shape[0]):
print pred[i],test_id[i]
err=(pred[i]-test_id[i])/test_id[i]
total_err+=err*err
print total_err/pred.shape[0]
5. 随机森林回归
from sklearn.ensemble import RandomForestRegressor
data=[[0,0,0],[1,1,1],[2,2,2],[1,1,1],[2,2,2],[0,0,0]]
target=[0,1,2,1,2,0]
rf = RandomForestRegressor()
rf.fit(data, target)
print rf.predict([[1,1,1]])
print rf.predict([[1,1,1],[2,2,2]])
#[ 1.]
#[ 1. 1.9]
data2=[[0,0,0],[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5]]
target2=[0,1,2,3,4,5]
rf2 = RandomForestRegressor()
rf2.fit(data2, target2)
print rf2.predict([[1,1,1]])
print rf2.predict([[1,1,1],[2,2,2],[4,4,4]])
#[ 0.7]
#[ 0.7 1.8 4. ]
6.xgboost的线性回归
import xgboost as xgb
regr = xgb.XGBRegressor()
7. 神经网络
可以利用神经网络模型做预测,这个例子暂时还没有,后期再补吧。
总结:本文主要是对价格预测模型给出了几种快速构建的选择,基于上面模型,还可以做模型融合等操作。如果更深入了解一些相关内容,参考这篇文章:基于机器学习方法对销售预测的研究
更多推荐
所有评论(0)