使用最小二乘法进行房价预测:
给定训练样本集合如下:
求解:当房屋面积为55平方时,租赁价格是多少?给出代码与运行结果图。
首先明白什么是最小二乘法,利用最小二乘法公式
p = (X^TX)^-1 X^T Y
import numpy as np
from numpy import mat
import matplotlib.pyplot as plt
if __name__ == "__main__":
# 1 获得x,y数据# ##########
X = np.array([10, 15, 20, 30, 50, 60, 60, 70])
y = np.array([0.8, 1, 1.8, 2, 3.2, 3, 3.3, 3.5])
plt.scatter(X, y)
plt.show()
# 2 矩阵形式转换X, Y
Y_mat = mat(y).T
# print(Y_mat)
X_temp = np.ones((8, 2))
#print(X_temp)
X_temp[:, 0] = X
# print(X_temp)
X_mat = mat(X_temp)
#print(X_mat)
# 3 利用解析法 p = (X^TX)^-1 X^T Y
pamaters = (((X_mat.T)*X_mat).I) * X_mat.T*Y_mat
¥print(pamaters)
# 4 显示
predict_Y = X_mat * pamaters
# print(predict_Y)
plt.figure()
plt.scatter(X, y, c="blue")
plt.plot(X, predict_Y, c="red")
plt.title("房价预测图") # 设置图表标题
plt.xlabel("房屋面积(m^2)") # 设置x坐标轴标签
plt.ylabel("租赁价格(1000$)") # 设置y坐标轴标签
plt.rcParams['font.sans-serif'] = ['Kaiti'] # 用来正常显示中文(黑体)常用字体包括: Kaiti-楷体; FangSong-仿宋; Microsoft YaHei-微软雅黑
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.show()
s = input("请输入房屋面积:")
#print(s)
s_temp = np.ones((1, 2))
s_temp[:, 0] = s
#print(s_temp)
s_mat = mat(s_temp)
z = s_mat * pamaters
print("租赁价格为:", z)
散点图和折线图
输入房屋面积即可得出租赁价格!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/147458.html