5.波士顿房价预测(KNN,决策树,线性回归)

波士顿房价预测

  • 1. 机器学习中的任务分类
  • 2. 波士顿房价预测
    • 2.1 分析数据
    • 2.2 比较 MAE 和 MSE
    • 2.2 代码

1. 机器学习中的任务分类

  • 有监督学习(supervised):有特征也有标签
    • 分类问题
      • classification
      • 预测离散量
    • 回归问题
      • regression
      • 预测连续量
  • 无监督学习(unsupervised):无监督学习
    • 聚类算法
      • KMeans
    • 降维算法
      • PCA
  • 自监督学习:
    • 大模型预训练,使用自监督
    • 输入文本,自己挖空填空

2. 波士顿房价预测

2.1 分析数据

  • 观察数据,最后一列代表房价,是连续量,所以房价预测是一个回归问题。
    24.00
    21.60
    34.70
    33.40
    36.20
    28.70
    22.90
    27.10

2.2 比较 MAE 和 MSE

  • 这里模型的评估与分类问题不同,此处采用的是平均方差误差
  • MAE 平均绝对误差 指的是计算 (预测值-真实值)平均值 ,这种方法可以直观地感受到误差的大小,也有实际的物理意义,更便于理解。但是绝对值会导致函数出现 不可导点 ,这将会给后续的计算带来很大麻烦;
  • MSE 平均平方误差 就是 计算 (预测值-真实值)平方平均值, 这样得到的结果并无实际意义,但是解决了不可导点的问题,从计算角度来讲,更容易求导,简化了计算。
  • 虽然我们无法从 MSE 的数值上直接得到有效信息,但是却可以通过比较来评估模型的好坏,信息是在比较中产生的。

2.2 代码

  • 加载和拆分数据
X=[]
y=[]
with open('housing.data',mode='r',encoding='utf8') as f:for line in f:line = line.strip()if line:line = line.split(' ')line = [float(ele) for ele in line if ele]features=line[:-1]label=line[-1]X.append(features)y.append(label)import numpy as np
X=np.array(X)
y=np.array(y)
print(X.shape,y.shape)  #:(506, 13) (506,)  #:(506, 13) (506,)# 拆分数据
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.15,random_state=0)
  • KNN
# KNN
from sklearn.neighbors import KNeighborsRegressor
knn=KNeighborsRegressor()
knn.fit(X=X_train,y=y_train)
pred = knn.predict(X_test)
# MAE 平均绝对误差(有不可导点)
# acc1=np.abs(pred-y_test).mean()
# MSE 平均平方误差(一笔糊涂账,从计算角度来讲,求导方便)
print('均方差',((pred-y_test)**2).mean())  #:均方差 47.64864736842107
  • 决策树
# 决策树
from sklearn.tree import DecisionTreeRegressor
dtr=DecisionTreeRegressor()
dtr.fit(X_train,y_train)
pred=dtr.predict(X_test)
print('均方差',((pred-y_test)**2).mean())  #:均方差 32.76315789473684
  • 线性回归
    y = F ( X ) = x 0 w 0 + x 1 w 1 + x 2 w 2 + . . . + x 12 w 12 y=F(X)=x_0w_0+x_1w_1+x_2w_2+...+x_{12}w_{12} y=F(X)=x0w0+x1w1+x2w2+...+x12w12
# 线性回归
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(X_train,y_train)
pred=lr.predict(X_test)
MSE=((pred-y_test)**2).mean()
print('系数:',lr.coef_,'偏置',lr.intercept_)  
print('误差:',MSE)  #:误差: 33.12038170826738

输出:
系数: [-1.24536078e-01 4.06088227e-02 5.56827689e-03 2.17301021e+00
-1.72015611e+01 4.02315239e+00 -4.62527553e-03 -1.39681074e+00
2.84078987e-01 -1.17305066e-02 -1.06970964e+00 1.02237522e-02
-4.54390752e-01] 偏置 36.0926776176116

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

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

相关文章

DPDK收包流程和Linux内核收包流程对比

DPDK 网卡收包流程-腾讯云开发者社区-腾讯云NIC 在接收到数据包之后,首先需要将数据同步到内核中,这中间的桥梁是 rx ring buffer。它是由 NIC 和驱动程序共享的一片区域,事实上,rx ring buffer 存储的并不是实际的 packet 数据&a…

【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)

【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上) 大家好 我是寸铁👊 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)✨ 喜欢的小伙伴可以点点关注 💝 前言 本次文章分为上下两部分&…

Golang使用docker sdk管理docker

包括列出容器、创建容器、删除容器、进入容器、构建镜像等操作。 package dockertoolimport ("context""fmt""github.com/docker/docker/api/types""github.com/docker/docker/api/types/container""github.com/docker/docker/ap…

【RaspberryPi】树莓派系统UI优化

接上文,如何去定制一个树莓派的桌面系统,还是以CM4为例。 解除CM4上电USB无法使用问题 将烧录好的tf卡通过读卡器插入到电脑上,进入boot磁盘,里面有一个Config文件,双击用记事本打开,在【pi4】一栏里加入一…

从零开始手写STL库:List

从零开始手写STL库–List部分 Github链接:miniSTL 文章目录 从零开始手写STL库–List部分List是什么?List需要包含什么函数1)基础成员函数2)核心功能3)其他功能 基础成员函数的编写核心功能的编写其他功能编写总结 List是什么&am…

QT之QWebEngineView详细介绍

QWebEngineView 是 Qt 框架中用于实现 Web 浏览器功能的一个类,它基于 Chromium 引擎,提供了丰富的接口来支持网页的加载、显示、交互等功能。以下是对 QWebEngineView 的详细介绍: 一、基本概述 引入版本:QWebEngineView 是从 …

Android 自定义系统版本号

framework开发,实现自定义系统版本号。  修改位置:  \build\tools  buildinfo.sh #!/bin/bashecho "# begin build properties" echo "# autogenerated by buildinfo.sh"echo "ro.build.id$BUILD_ID" echo "ro.b…

服务器需要扩容,如何停止宝塔的所有服务?

教程开始 1:新建一个shell脚本执行以下代码 或者进面板 把以下代码丢到计划任务里的shell脚本执行 #!/bin/bash PATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH stop_service(){/etc/init.d/bt stopif [ -f "/etc/init…

Git添加和提交文件

常用命令 git status--查看仓库的状态 git add--添加到暂存区 可以使用通配符,例如:git add *.txt 也可以使用目录,例如:git add .git commit--提交 只提交暂存区中的内容,不会提交工作区中的内容git log--查看仓库提交历史记录 可以使用 --o…

uboot 设置bootargs配置内核网络挂载根文件系统

uboot 设置bootargs配置内核网络挂载根文件系统 uboot设置bootargs env set bootargs "mem256M consolettyAMA0,115200 root/dev/nfs init/linuxrc nfsrootnfs主机地址:nfs路径/busybox/rootfs_glibc_arm64,prototcp rw nfsvers3 rootwait ip板子地址:nfs主机地址:网关:2…

一文解释Spring中对象关系映射(ORM)

对象关系映射(ORM)是一种编程技术,它把面向对象语言中的对象与关系数据库的数据表通过映射创建关联,实现两者之间的自动数据同步。 在Spring框架中,ORM 是通过Spring Data访问层的一部分实现的,它提供了统…

《Windows API每日一练》14.1 位图基础

位图经常被用来表示来自现实世界的复杂的图像,比如数字化的照片或是视频截图。图元文件则更适合人工产生的或计算机产生的图像,比如建筑结构图。本节我们将讲述有关位图的基础知识。 本节必须掌握的知识点: 位图与图元文件 生成位图 第79练&…

C#与C++交互开发系列(六):同一个项目中使用C#和C++进行混合模式开发

欢迎来到C#与C交互开发系列的第六篇。在这篇博客中,我们将探讨混合编程,即在同一个项目中结合使用C#和C。在同一个项目中同时使用C/CLI和P/Invoke来实现C#与C的互操作。C/CLI提供了直接访问托管代码的能力,而P/Invoke则用于调用现有的C库函数…

计算机网络技术分类

计算机网络技术可以根据不同的分类标准进行分类,以下是一些主要的分类方式: 一、按覆盖范围分类 局域网(LAN,Local Area Network): 覆盖范围较小,通常在一个建筑物或校园内。使用广播技术&…

网络安全防御--加密技术及身份、数据认证

VPN概述 VPN诞生的原因 1,物理专线成本高,在位置不固定的情况下,难以实现 2,直接将服务器开放到公网,不安全 VPN --- 虚拟专用网 --- 是指依靠ISP或者其他NSP或者企业自身,构建的专用的安全的数据通信网络&…

MySQL的查询优化思路

目录 前言 解决方案 减少查询 SQL优化 索引优化 减少锁 避免大事务 扩容 硬件升级 前言 一般的系统中,数据库往往都是性能瓶颈。在一个系统中,数据库被使用的频率很高,因为几乎所有的应用程序都需要与数据库交互来读取或写入数据。…

华为OD机试 - 文件缓存系统——优先队列解法

华为OD机试 - 文件缓存系统——优先队列解法 题目描述题目分析代码解析复杂度分析 题目描述 题目描述链接🔗 题目分析 这题需要我们实现一个LFUCache的自定义数据结构,根据题意,需要分别定义一个put和get方法,用于存储缓存和获…

基于YOLO8的目标检测系统:开启智能视觉识别之旅

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 target_dec_app.py 二、核心代码介绍篇2.1 target_dec_app.py2.2 scan_taskflow.py 三、结语 在线体验 基于YOLO8的目标检测系统 基于opencv的摄像头…

从等保测评看行业安全趋势:洞察与预测

在当今数字化时代,网络安全已成为各行各业的头等大事。等保测评(等级保护测评),作为国家对信息系统安全的重要管理手段,不仅关乎企业的合规性,更是行业安全水平的重要衡量标准。本文将从等保测评的视角出发…

敏捷CSM认证:精通敏捷Scum估算方法,高效完成项目!

咱们做项目的时候可能都遇到过这种情况:项目一开始信心满满,觉得 deadline 稳了。结果呢?各种意外状况频出,时间好像怎么都不够用了,最后项目只能无奈延期,整个团队都像霜打的茄子。 说到底,还…