复试 || 就业day04(2024.01.05)项目一

2024-01-06 00:20

本文主要是介绍复试 || 就业day04(2024.01.05)项目一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 线性回归房价预测
    • 加载数据
    • 数据查看
    • 数据拆分
    • 数据建模
    • 模型的验证、应用
    • 模型的评估
  • 总结

前言

💫你好,我是辰chen,本文旨在准备考研复试或就业
💫本文内容来自某机构网课,是我为复试准备的第一个项目
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 预置知识详见我的AIoT板块,需掌握 基本Python语法, Numpy, Pandas, Matplotlib

以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:

💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解

线性回归房价预测

import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression 

加载数据

boston = datasets.load_boston()X = boston['data']    # 数据,这些数据影响了房价
y = boston['target']  # 房价,24代表2 4W dollar # CRIM 犯罪, NOX 空气污染, TAX 税收
feature_names = boston['feature_names'] # 具体指标
feature_names

在这里插入图片描述

数据查看

# 506表示506统计样本,13表示影响房价的13个属性 
X.shape    # 506行,每一行的13个数值乘以一个权重和一个截距就是相当于506个13元一次方程
# 我们的目的就是去解这13个权重和1个截距
# 506个价格
# X -> y 是一,一对应的
# 数据 -> 目标值 对应
y.shape

在这里插入图片描述

数据拆分

# 506个数据,样本
# 拆分成为两份,一份80%训练数据;剩下的20%验证数据
# 其中的80%交给算法,线性回归,学习、总结、你和函数
# 20%的作用为验证,测一测,看看算法学习完80%的数据后是否准确# 创建一个包含0到505的整数的一维NumPy数组,并将其分配给变量index
index = np.arange(506)
# 打乱顺序
np.random.shuffle(index)
# 506 * 0.8 = 404.8 ≈ 405,据此用切片划分训练样本和测试样本
train_index = index[:405]
test_index = index[405:]X_train = X[train_index]
y_train = y[train_index]
display(X_train.shape, y_train.shape)
# 20%的测试数据
X_test = X[test_index]
y_test = y[test_index]display(X_test.shape, y_test.shape)

在这里插入图片描述

数据建模

model = LinearRegression(fit_intercept = True) # 允许计算截距(默认也是True)model.fit(X_train, y_train)display(model.coef_, model.intercept_)
# 不想看科学计数法:
np.set_printoptions(suppress = True)
# 数值为正:正相关,如面积越大房价越高
# 数值为负:负相关,如犯罪率越高房价越低
display(model.coef_, model.intercept_)

在这里插入图片描述

模型的验证、应用

# 模型的预测结果
y_ = model.predict(X_test).round(2) # 保留2位小数
y_[:30] # 查看前30个值
# 查看真实值的前30个
y_test[:30]

在这里插入图片描述

模型的评估

# 最大值是1,可以小于0(评分太差了,是负数)
# 数值越接近1,说明算法越优秀
model.score(X_test, y_test)
# 不妨再来看一下80%数据的得分,结果一般来说是要高一些的
model.score(X_train, y_train)
# 当然,评价标准不止有一个,如之前学过的最小二乘法
# 最小二乘法
from sklearn.metrics import mean_squared_error
# 这个是误差,误差是越小越好
# 测试那20%的数据
y_pred = model.predict(X_test) # 其实y_也可,只不过上面处理的y_已经保留了2位小数了,效果差一点点
mean_squared_error(y_test, y_pred)   # 也可以写成 mean_squared_error(y_test, y_) 问题不大
# 再来计算一下那80%的数据,得到的值一般来说是要低些
mean_squared_error(y_train,  model.predict(X_train)) 

在这里插入图片描述

总结

完整代码:

import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression boston = datasets.load_boston()X = boston['data']    # 数据,这些数据影响了房价
y = boston['target']  # 房价,24代表2 4W dollar 
# X.shape : (506, 13), y.shape : (506, )# CRIM 犯罪, NOX 空气污染, TAX 税收
feature_names = boston['feature_names'] # 具体指标# 创建一个包含0到505的整数的一维NumPy数组,并将其分配给变量index
index = np.arange(506)
# 打乱顺序
np.random.shuffle(index)# 506个数据,样本
# 拆分成为两份,一份80%训练数据;剩下的20%验证数据
# 其中的80%交给算法,线性回归,学习、总结、你和函数
# 20%的作用为验证,测一测,看看算法学习完80%的数据后是否准确
# 506 * 0.8 = 404.8 ≈ 405,据此用切片划分训练样本和测试样本
train_index = index[:405]
X_train = X[train_index]
y_train = y[train_index]# 20%的测试数据
test_index = index[405:]
X_test = X[test_index]
y_test = y[test_index]# 不想看科学计数法:
np.set_printoptions(suppress = True)
model = LinearRegression(fit_intercept = True) # 允许计算截距(默认也是True)
# 数值为正:正相关,如面积越大房价越高
# 数值为负:负相关,如犯罪率越高房价越低
model.fit(X_train, y_train)# 模型的预测结果
y_ = model.predict(X_test).round(2) # 保留2位小数
# 最大值是1,可以小于0(评分太差了,是负数)
# 数值越接近1,说明算法越优秀
model.score(X_test, y_test)# 不妨再来看一下80%数据的得分,结果一般来说是要高一些的
model.score(X_train, y_train)# 当然,评价标准不止有一个,如之前学过的最小二乘法
# 最小二乘法
from sklearn.metrics import mean_squared_error
# 这个是误差,误差是越小越好
# 测试那20%的数据
y_pred = model.predict(X_test) # 其实y_也可,只不过上面处理的y_已经保留了2位小数了,效果差一点点
mean_squared_error(y_test, y_pred)   # 也可以写成 mean_squared_error(y_test, y_) 问题不大
# 再来计算一下那80%的数据,得到的值一般来说是要低些
mean_squared_error(y_train,  model.predict(X_train)) 

在这里插入图片描述

这篇关于复试 || 就业day04(2024.01.05)项目一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574617

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加