爬取链家网房源信息 线性回归做房价预测(二)

1 爬取链家网房源数据

https://blog.csdn.net/weixin_41044499/article/details/94382662

得到的数据格式如下:

2 将所有的特征进行处理,转化为多个特征。调用skilearn的linear-regression方法,做房价的线性回归的训练和预测,

# !/usr/bin/python
# -*- coding:utf-8 -*-

from sklearn.linear_model import LinearRegression
import pandas  as pd
import numpy as np
raw = pd.read_excel('lianjia-info.xlsx')
#房价 户型 平米 朝向 装修 电梯
raw['装修2'] = raw['装修'].map({'精装':3,'简装':2,'毛坯':1,'其他':0})
#将不同的朝向分别单独出来一列
raw['nan']= raw['朝向'].apply(lambda x:'南' in x).map({True:1,False:0})
raw['dong']= raw['朝向'].apply(lambda x:'东' in x).map({True:1,False:0})
raw['xi']= raw['朝向'].apply(lambda x:'西' in x).map({True:1,False:0})
raw['bei']= raw['朝向'].apply(lambda x:'北' in x).map({True:1,False:0})
#print(raw['bei'])
raw['平米2'] = raw['平米'].apply(lambda x: np.round(float(x.split('平米')[0]),2))
#将室和厅单独统计
raw['shi']=raw['户型'].apply(lambda x: int(x.split('室')[0]))
raw['ting']=raw['户型'].apply(lambda x: int(x.split('室')[1].split('厅')[0]))
print(raw['ting'])
a = {'有电梯':1,'无电梯':0}
raw['是否电梯']=raw['电梯'].apply(lambda x: int(a[x]))
print(raw.ix[:,4:].head())
raw = raw.drop(['户型','平米','朝向','装修','电梯'],axis=1)
print(raw.head())
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test = train_test_split(raw.ix[:,1:],raw.ix[:,0],random_state=0,test_size=0.10)
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
#使用训练数据进行参数估计
lr.fit(X_train,y_train)
#回归预测
lr_y_predict=lr.predict(X_test)
for m,n in zip(lr_y_predict,y_test):
    print('预测房价{0},实际房价{1}'.format(m,n))
from sklearn.metrics import r2_score
score = r2_score(y_test, lr_y_predict)
print(score)

结果如下:预测房价342.52956580436364,实际房价230.0
预测房价173.67456273165675,实际房价131.0
预测房价165.92902318264507,实际房价150.0
预测房价299.47476789637045,实际房价290.0
预测房价318.78878521420137,实际房价620.0
预测房价320.30256195643864,实际房价430.0
预测房价227.70984025058704,实际房价225.0
预测房价191.45726777578716,实际房价158.0
预测房价104.97257600324866,实际房价90.0
预测房价127.06979271632972,实际房价110.0
0.6462123487128066

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值