scikit-learn多因子线性回归预测房价

1.首先是单因子线性回归预测房价

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score# 1.读取csa房屋数据
path = 'D:/pythonDATA/usa_housing_price.csv'
house_data = pd.read_csv(path)
print(house_data.head())
# 2.显示每个因子和房价的散点图
plt.figure(figsize=(18, 12))
fig1 = plt.subplot(231)
plt.scatter(house_data['Avg. Area Income'], house_data['Price'])  # 第一个子图平均收入和房价
plt.title('Income vs Price')
fig2 = plt.subplot(232)
plt.scatter(house_data['Avg. Area House Age'], house_data['Price'])  # 第二个子图房子平均年龄和房价
plt.title('House Age vs Price')
fig3 = plt.subplot(233)
plt.scatter(house_data['Avg. Area Number of Rooms'], house_data['Price'])  # 第三个子图房子所居人数
plt.title('Number of Rooms vs Price')
fig4 = plt.subplot(234)
plt.scatter(house_data['Area Population'], house_data['Price'])  # 第四个子图地区人口
plt.title('Area Population vs Price')
fig5 = plt.subplot(235)
plt.scatter(house_data['size'], house_data['Price'])  # 第五个子图房屋大小
plt.title('size vs Price')
plt.show()# 3.先用size这个单因子和房价进行拟合训练,进行预测房价
X = house_data.loc[:, 'size']
y = house_data.loc[:, 'Price']
print(type(X))
# 4.将变量size通过numpy转为二维数组
X = np.array(X).reshape(-1, 1)
# 5.建立线性回归模型,对X和y进行拟合(拟合可得到线性回归公式也就是得到a和b,接下来就可以对应进行预测)
lr1 = LinearRegression()
lr1.fit(X, y)
# 6.通过得到的拟合方程对X进行预测
y_predict_1 = lr1.predict(X)
print(y_predict_1)
# 7.模型评估(MSE和R2)
mse_1 = mean_squared_error(y, y_predict_1)
r2_1 = r2_score(y, y_predict_1)
print("MSE评估:" + mse_1.__str__())
print("R2评估:" + r2_1.__str__())  # 预测为0.1,效果并不好
# 8.对预测值进行可视化
plt.figure(figsize=[8, 6])
plt.scatter(X, y)  # 真实标签的绘图
plt.plot(X, y_predict_1, 'r')  # 预测数据线性的绘图
plt.show()

效果如下所示:
在这里插入图片描述

在这里插入图片描述

2.多因子线性回归评估

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score# 1.读取csa房屋数据
path = 'D:/pythonDATA/usa_housing_price.csv'
house_data = pd.read_csv(path)
print(house_data.head())  # data.head()预览数据
# 2.多因子变量(本身就是二维,无需再np.array().reshape了)
X_multi = house_data.drop(['Price'], axis=1)  # 去掉Price所在列,其余5个为输入变量
# X_multi = np.array(X_multi).reshape(-1, -1)
y = house_data.loc[:, 'Price']
print(X_multi)
# 3.建立模型对X和y进行拟合(得到线性回归方程)
LR_multi = LinearRegression()
LR_multi.fit(X_multi, y)
# 4.利用拟合的方程对X_multi进行模型预测
y_predict_multi = LR_multi.predict(X_multi)
print("y预测数据\n")
print(y_predict_multi)
# 5.模型评估
mse_multi = mean_squared_error(y, y_predict_multi)
r2_multi = r2_score(y, y_predict_multi)
print("MSE评估:" + mse_multi.__str__())
print("R2评估:" + r2_multi.__str__())# 6.图形评估(多因子X_multi不能与y绘制scatter)
fig6 = plt.figure(figsize=(9, 6))
plt.scatter(y, y_predict_multi)  # 接近1:1说明比较准确
plt.show()
# 7.捏造一条数据并进行预测(平均收入,房子使用年龄,房子居住人数,社区人口数,房子大小)
X_test = [66000, 3, 6, 20000, 150]
X_test = np.array(X_test).reshape(1, -1)  # 将输入数据转化为数组(1,-1)1行n列
print(X_test)
y_test_predict = LR_multi.predict(X_test)
print(y_test_predict)

效果如下所示:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地道俄语口语,柯桥俄语培训哪家好

1、по-моему 依我看;在我看来 例: По-моему, сегодня будет дождь. 依我看, 今天要下雨。 Сделай по-моему. 按我的办法干吧 2、кажется 似乎是;看起来 例: Парень, …

mvc区域、Html.RenderAction、Html.RenderPartial、 模板、section

根据上图 Html.RenderPartial 与 Html.RenderAction 区别 RenderAction 会把对应的视图结果渲染 RenderPartial 会把html视图直接渲染 模板

The 2021 Sichuan Provincial Collegiate Programming Contest

The 2021 Sichuan Provincial Collegiate Programming Contest The 2021 Sichuan Provincial Collegiate Programming Contest A. Chuanpai 题意:给出总值k,将k分成xyk,x和y均小于7,最多分成多少组。 思路:暴力跑一…

【工具】Office/WPS 插件|AI 赋能自动化生成 PPT 插件测评 —— 必优科技 ChatPPT

本文参加百度的有奖征文活动,更主要的也是借此机会去体验一下 AI 生成 PPT 的产品的现状,因此本文是设身处地从用户的角度去体验、使用这个产品,并反馈最真实的建议和意见,除了明确该产品的优点之外,也发现了不少缺陷和…

实战Java虚拟机-基础篇

JVM的组成 一、自动垃圾回收 1.Java的内存管理 Java中为了简化对象的释放,引入了自动的垃圾回收(Garbage Collection简称GC)机制。通过垃圾回收器来对不再使用的对象完成自动的回收,垃圾回收器主要负责对堆上的内存进行回收。其…

vue项目基于WebRTC实现一对一音视频通话

效果 前端代码 <template><div class"flex items-center flex-col text-center p-12 h-screen"><div class"relative h-full mb-4 fBox"><video id"localVideo"></video><video id"remoteVideo">…

【MQTT】服务端、客户端工具使用记录

目录 一、服务端 1.1 下载 1.2 相关命令 &#xff08;1&#xff09;启动 &#xff08;2&#xff09;关闭 &#xff08;3&#xff09;修改用户名和密码 1.3 后台管理 &#xff08;1&#xff09;MQTT配置 &#xff08;2&#xff09;集群概览 &#xff08;3&#xff09;…

如何使用SkyWalking收集分析分布式系统的追踪数据

Apache SkyWalking 是一个开源的观测性工具&#xff0c;用于收集、分析和展示分布式系统的追踪数据。SkyWalking 支持多种语言的追踪&#xff0c;包括但不限于 Java、.NET、Node.js 等。以下是使用 SkyWalking 工具实现数据采集的详细步骤&#xff1a; 1. 下载和安装 SkyWalkin…

数据挖掘算法原理与实践:决策树

第2关&#xff1a;决策树算法原理 任务描述 本关任务&#xff1a;根据本关所学知识&#xff0c;完成 calcInfoGain 函数。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 信息熵&#xff1b;条件熵&#xff1b;信息增益。 信息熵 信息是个很抽象的概念。…

风电厂数字孪生3D数据可视化交互展示构筑智慧化电厂管理体系

随着智慧电厂成为未来电力企业发展的必然趋势&#xff0c;深圳华锐视点紧跟时代步伐&#xff0c;引领技术革新&#xff0c;推出了能源3D可视化智慧管理系统。该系统以企业现有的数字化、信息化建设为基础&#xff0c;融合云平台、大数据、物联网、移动互联、机器人、VR虚拟现实…

Android 右键 new AIDL 无法选择

提示 (AIDL File)Requires setting the buildFeatures.aidl to true in the build file&#xff09; 解决方式&#xff1a; 在app的build.gradl中 adnroid{} 添加&#xff1a; buildFeatures{aidl true}

Oracle-一次TX行锁堵塞事件

问题背景&#xff1a; 接用户问题报障&#xff0c;应用服务出现大量会话堆积现象&#xff0c;数据库锁堵塞严重&#xff0c;需要协助进行问题定位和排除。 问题分析&#xff1a; 登录到数据库服务器上&#xff0c;首先查看一下数据库当前的等待事件情况&#xff0c;通过gv$ses…

教你零成本,免费使用comfyui复现remini爆火的黏土风格转绘(附完整教程)

在五一假期期间,一款名为Remini的AI照片编辑软件在小红书上迅速走红,其独特的“丑萌”黏土风格滤镜深受广大博主和用户的喜爱,引发了一波热潮,让人们玩得不亦乐乎。 Remini软件提供的这种视觉效果虽然看起来有点“丑萌”特效,然而,正是这种独树一帜的画风,使得Remini迅速…

【Django学习笔记(十)】Django的创建与运行

Django的创建与运行 前言正文1、安装Django2、创建项目2.1 基于终端创建项目2.2 基于Pycharm创建项目2.3 两种方式对比 3、默认项目文件介绍4、APP5、启动运行Django5.1 激活App5.2 编写URL和视图函数对应关系5.3 启动Django项目5.3.1 命令行启动5.3.2 Pycharm启动5.3.3 views.…

C++缺省参数、函数重载、引用

一、缺省参数 1.1缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实参则采用该形参的缺省值&#xff0c;否则使用指定的实参。 void func(int n 0) {cout << n << endl; }int main() {func();func…

【经验01】spark执行离线任务的一些坑

项目背景: 目前使用spark跑大体量的数据,效率还是挺高的,机器多,120多台的hadoop集群,还是相当的给力的。数据大概有10T的量。 最近在出月报数据的时候发现有一个任务节点一直跑不过去,已经超过失败次数的阈值,报警了。 预警很让人头疼,不能上班摸鱼了。 经过分析发现…

Apache Knox 2.0.0使用

目录 介绍 使用 gateway-site.xml users.ldif my_hdfs.xml my_yarn.xml 其它 介绍 The Apache Knox Gateway is a system that provides a single point of authentication and access for Apache Hadoop services in a cluster. The goal is to simplify Hadoop securit…

LANCET:常见统计使用错误+规避建议!

国际顶级医学期刊《柳叶刀》&#xff08;The Lancet&#xff09;最近发表了一篇实用的通讯文章&#xff08;Correspondence&#xff09;&#xff0c;该篇Correspondence基于过去3年内对提交给《柳叶刀》的1000多篇manuscripts进行审核的经验&#xff0c;总结了科研report中常见…

【系统架构师】-UML-用例图(Use Case)

1、概述 用于表示系统功能需求&#xff0c;以及应用程序与用户或者与其他应用程序之间的交互关系。 2、组成 参与者&#xff08;Actors&#xff09;&#xff1a;与系统交互的用户或其他系统。用一个人形图标表示。用例&#xff08;Use Cases&#xff09;&#xff1a;系统需要…

2024年第九届数维杯数学建模A题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…