房屋租金的Python多元线性回归
方法:简单多元线性回归
数据来源:网络爬取房屋租赁网站的租赁数据
所用包
import pandas as pd
import numpy as np
from sklearn.feature_extraction import DictVectorizer
from sklearn import linear_model
import seaborn as sns
import matplotlib.pyplot as plt
导入数据
#导入数据
data = pd.DataFrame(pd.read_excel(r"C:\Users\lenovo\Desktop\工作包\回归分析\实验二\第一季度试验数据.xlsx"))
#data.columns
'''Index(['MONTH', 'COLL_DATE', 'NAME', 'BUI_NAME', 'AREA_NO', 'BUILDING_NO',
'UNIT_NO', 'ROOM_NO', 'HU_NO', 'SHI_NO', 'BUI_YEAR', 'HOUSE_ORI',
'FLOOR_TYPE', 'FLOOR_NO', 'FLOORS', 'HOUSE_TYPE', 'LEA_SOUR',
'HAV_IND_TOI是否带独立卫生间(1是/0否)', 'HAV_SHOWER是否带淋浴(1是/0否)',
'HAV_BALCONY是否带阳台(1是/0否)', 'HAV_WINDOW是否带飘窗(1是/0否)', 'HUXING_STR',
'RENT(租金)', 'RENT_PRICE(租金单价(元/平方米/月))', 'DECO_LEV', 'RENT_TYPE',
'LEASE_STATE', 'INC_PRO_FEE', 'INC_SER_FEE', 'RENT_BEGIN', 'RENT_END',
'LET_COMP', 'PAY_TYPE', 'TEN_NAME', 'TEN_EDU', 'TEN_AGE',
'YEARS_OF_GRA', 'IS_REC'],
dtype='object')
'''
取出需要数据
data2 = data.loc[:,["MONTH","NAME","HOUSE_ORI","LEA_SOUR","HUXING_STR","RENT(租金)","RENT_PRICE(租金单价(元/平方米/月))","DECO_LEV","RENT_TYPE","HAV_IND_TOI是否带独立卫生间(1是/0否)","HAV_BALCONY是否带阳台(1是/0否)"]]
#统计时间,小区名称,朝向,房屋来源,户型,租金,单位租金,装修,租赁方式
data2 = data2.rename(columns={
"RENT_PRICE(租金单价(元/平方米/月))":"单位租金","HAV_IND_TOI是否带独立卫生间(1是/0否)":"独卫","HAV_BALCONY是否带阳台(1是/0否)":"阳台"})
data2 = data2[data2["MONTH"]==202101]
数据预处理
#删除空值
data2 = data2.dropna(axis=0,how='any',subset=["MONTH","NAME","HOUSE_ORI","RENT(租金)","单位租金","DECO_LEV","RENT_TYPE","LEA_SOUR","独卫","阳台"],inplace=False)
data2.groupby(data2["NAME"]).count()
查看数据分布情况
# 读入外部数据
# pay_ratio = pd.read_excel(r'C:UsersAdministratorDesktoppay_ratio.xlsx')
# 绘制单条折线图,并在折线图的基础上添加点图
data5 = data2[data2["NAME"]=="东湖城"]
x = data5.index
y = data5["RENT_PRICE(租金单价(元/平方米/月))"]
plt.plot(x, # x轴数据
y, # y轴数据
linestyle = '-', # 设置折线类型
linewidth = 2, # 设置线条宽度
color = 'steelblue', # 设置折线颜色
marker = 'o', # 往折线图中添加圆点
markersize &#