百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

K近邻回归算法预测波士顿房价

bigegpt 2024-08-06 11:54 3 浏览

在回归分析中,我们主要使用回归分析方法做预测,虽然使用Excel和python两个工具来做,但是结果的拟合度都是在0.74附近,都不是很理想,这次我们来使用K近邻回归算法来预测一下。

很多人有疑问,k近邻算法不是分类算法吗?是分类算法不假,也可以做回归算法,主要是针对连续型变量数据。

什么是K近邻算法

所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。经常用KNN来表示。

KNN怎么做回归?

同样是先分类,然后把所属类别的均值赋给预测值,也就是说要预测的点的值通过求与它距离最近的K个点的值的平均值得到。这里的"距离最近"可以是欧氏距离,也可以是其他距离,具体的效果依数据而定,思路一样。如下图,x轴是一个特征,y是该特征得到的值,红色点是已知点,要预测第一个点的位置,则计算离它最近的三个点(黄色线框里的三个红点)的平均值,得出第一个绿色点,依次类推,就得到了绿色的线,可以看出,这样预测的值明显比直线准。

不同于回归分析,K进行回归算法没法给一个回归方程

Python中也提供了K近邻回归算法接口,这里牵涉到几个参数的选择,

1,权重,也就是近邻的权重,一般有两种选择:一是所有近邻的权重都相同,二是权重等于近邻距离的倒数,也就是越近对预测值影响越大。

2,距离的算法,在这里主要有两种,曼哈顿距离和欧氏距离。

3,近邻个数的选择,这个可以使用sklearn调优器(GridSearchCV)平均交叉验证的方法通过网格搜索来获取最优的个数。k值设置过小会降低分类精度;若设置过大且测试样本属于训练集中包含数据较少的类,则会增加噪声,降低分类效果。

sklearn.preprocessing 包提供了几个常见的实用功能和变换器类型,用来将原始特征向量更改为更适合机器学习模型的形式。

数据集的 标准化 对scikit-learn中实现的大多数机器学习算法来说是 常见的要求 。如果个别特征或多或少看起来不是很像标准正态分布(具有零均值和单位方差),那么它们的表现力可能会较差。

在实际情况中,我们经常忽略特征的分布形状,直接经过去均值来对某个特征进行中心化,再通过除以非常量特征(non-constant features)的标准差进行缩放。

在机器学习算法的目标函数许多学习算法中目标函数的基础都是假设所有的特征都是零均值并且具有同一阶数上的方差。

尤其是在以距离为依据的分类算法,如果某个特征的方差比其他特征大几个数量级,那么它就会在学习算法中占据主导位置,导致学习器并不能像我们说期望的那样,从其他特征中学习。

实用类 StandardScaler ,它实现了转化器的API来计算训练集上的平均值和标准偏差,以便以后能够在测试集上重新应用相同的变换。

结果分析:

1,通过实用类 StandardScaler来进行数据的转换;

2,K近邻最优选取6个;

3,距离选取曼哈顿距离;

4,根据近邻的距离的远近的倒数选取权重,

5,使用超参数优化器选取参数时,针对回归,优化器中的scoring选取r2,是回归的拟合优度

K近邻回归中的score得到的是r2系数,最终根据优化后的模型参数,得到测试集上的r2为0.72,比使用线性回归效果还略差一些,针对这个数据集,线性回归比k近邻回归效果更好。

总结:

  • 训练集的选取决定着回归预测的效果好坏,同一个数据集,按不同比例进行拆分,无论是随机拆分还是固定拆分都会影响效果。
  • 训练的模型要在测试集查看他的效果,而不是在训练集。
  • 鉴于拆分训练集和测试集对效果影响比较大,可以使用交叉验证的方式获取更准确的效果评估。

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...