sklearn进行房价预测

-- coding: utf-8 --

“”"
@Time : 19-9-21 下午7:09
@Author : lei
@Site :
@File : 房价预测.py
@Software: PyCharm
“”"

房价预测

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import StandardScaler
from sklearn.externals import joblib
import matplotlib.pyplot as plt
from matplotlib import font_manager
import pandas as pd
import numpy as np

def main():
name = [“area”, “price”]
data = pd.read_csv("./house_data.txt", names=name)

x_train, x_test, y_train, y_test = train_test_split(data.iloc[:, 0], data.iloc[:, 1], train_size=0.25)

std_x = StandardScaler()
x_train = std_x.fit_transform(np.array(x_train).reshape(-1, 1))
x_test = std_x.transform(np.array(x_test).reshape(-1, 1))

std_y = StandardScaler()
y_train = std_y.fit_transform(np.array(y_train).reshape(-1, 1))
y_test = std_y.transform(np.array(y_test).reshape(-1, 1))

lr = LinearRegression()
lr.fit(x_train, y_train)
y_predict = std_y.inverse_transform(lr.predict(x_test))

error = mean_squared_error(std_y.inverse_transform(y_test), y_predict)
print("正确结果为:", std_y.inverse_transform(y_test))
print("预测结果为:", y_predict)
print("均方误差为:", error)
print("数据波动大小可以为:", error ** 0.5)

# joblib.dump(lr, "./test.pkl")

def main2():
while True:
try:
area = int(input(“请输入您要预测的平米大小:”))
except Exception as ex:
print(“输入错误, 重新输入!”, ex)
else:
break
estimator = joblib.load("./test.pkl")
y_predict = estimator.predict(np.array(area).reshape(-1, 1))
print(“预测的结果为:”, y_predict)

def main3():
data = pd.read_csv("./house_data.txt", names=[“area”, “price”])

data = data.sort_values(["area"], ascending=False)

area = data.iloc[:, 0].to_list()
price = data.iloc[:, 1].to_list()

my_font = font_manager.FontProperties(fname="/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc")

plt.figure(figsize=(20, 8), dpi=80)

plt.xticks(range(40, 220, 20), ["{}m^2".format(i) for i in range(40, 220, 20)], font_properties=my_font)
# plt.yticks(range(200, 200, 2100))

plt.xlabel("面积大小", font_properties=my_font, color="blue")
plt.ylabel("money", font_properties=my_font, color="cyan")

plt.title("房屋面积和价格走势图", fontproperties=my_font)

plt.scatter(area, price, color="pink", label="房屋价格走势")

plt.legend(prop=my_font)

plt.grid(alpha=0.3, color="grey")

plt.savefig("./house_price.png")

plt.show()

if name == ‘main’:
main3()

你可能感兴趣的:(机器学习,深度学习,sklearn房价预测)