KNN回归-预测二手车

2023-11-08

'''
KNN是一个典型的分类模型,就时预测类别,例如苹果,香蕉等。预测的结果是
训练集上已经包含的类别,并不会预测出新的类别


二手车价格预测是预测车的价格,是数值。理应按照回归算法来算


怎么用knn来实现回归问题呢?  找到最近的K样本之后,我们直接取了平均作为预测值,很直观


这里给出了对于数据的简单描述。
Ask Price            字段是我们要预测的值,即二手车的估价。
Brand                为车辆的牌子。
Type                 指的是它的发动机类型。
Color                字段为车辆外观颜色。
Construction Year    字段为车子生产年份。
Odometer             为仪表盘已经行驶的里程数。
DaysUntilMOT         指的是自从上一次的保养过了多久
HP                   字段代表的是马力。 "

'''
import  sys ,os
import  pandas as pd
import numpy as np
import seaborn as sns
import matplotlib
import matplotlib.pyplot  as plt
# 读取数据


path=os.getcwd()+"\source\double_car.csv"
df=pd.read_csv(path,engine='python',encoding='gbk')   #  务必加上 engine='python' 不然会报错
'''
         Brand  Type Color  Construction Year  Odometer  Ask Price    Days Until MOT   HP 
0  Peugeot 106   1.0  blue               2002    166879        999      138            60  
1  Peugeot 106   1.0  blue               1998    234484        999      346            60 
'''
#特征处理
#颜色独热编码
df_color=df['Color'].str.get_dummies().add_prefix('color:')
'''
 color:black  color:blue  color:green  color:grey  color:red  color:white
0             0           1            0           0          0            0
1             0           1            0           0          0            0

'''

#类型独热编码
df_type=df['Type'].apply(str).str.get_dummies().add_prefix('Type:')
#添加度热编码列

df=pd.concat([df,df_color,df_type],axis=1)
#去掉原列
df=df.drop(['Brand','Color','Type'],axis=1)
'''
Construction Year  Odometer  Ask Price  Days Until MOT   HP  color:black  color:blue  color:green  color:grey  color:red  color:white  Type:1.0 Type:1.1  Type:1.4 
'''

# s数据转换
'''
看一下数据之间的相关性 使用corr() 函数 来计算特征之间的相关性  之后通过sns进行可视化相关性
'''
matrix=df.corr()
#f,ax=plt.subplots(figsize=(8,6))
#sns.heatmap(matrix,square=True)
#plt.title('变量')
#plt.show()


## KNeighborsClassifier   KNN分类
## KNeighborsRegressor    KNn回归
from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import train_test_split
from sklearn import  preprocessing
from sklearn.preprocessing import StandardScaler
import  numpy as np

#  Brand  Type Color  Construction Year  Odometer  Ask Price    Days Until MOT   HP
X=df[['Construction Year','Days Until MOT','Odometer']]
y=df['Ask Price'].values.reshape(-1,1)
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=41)
X_normanlizer=StandardScaler()
X_train=X_normanlizer.fit_transform(X_train)
X_test=X_normanlizer.transform(X_test)

y_normanlizer=StandardScaler()
y_train =y_normanlizer.fit_transform(y_train)    #特征的归一化标准是来自训练数据,然后应用在测试数据,
y_test=y_normanlizer.transform(y_test)           #因为在实际的情况下,测试数据是看不到的,是算不出来均值和方差的
knn=KNeighborsRegressor(n_neighbors=2)

knn.fit(X_train,y_train.ravel())                  #.ravel() 多维的数组降为1维

y_pred=knn.predict(X_test)
# y_pred=y_pred.astype('float')
y_pred_inv=y_normanlizer.inverse_transform(y_pred)
y_test_inv=y_normanlizer.inverse_transform(y_test)

#from sklearn.metrics import accuracy_score
# acc=accuracy_score(y_test_inv,y_pred_inv)     print('准确率:',acc)   # 0.0  回归的问题算准确率意义不大

plt.scatter(y_pred_inv,y_test_inv)    # 点
plt.xlabel('pred')
plt.ylabel('test')

diag=np.linspace(500,1500,100)      # 准备画 对角线
plt.plot(diag,diag,'-r')
plt.show()


print(y_pred_inv)   # 预测值

print(knn)   #knn的相关属性










































 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KNN回归-预测二手车 的相关文章

  • 只利用 phpstudy 如何运行PHP文件 超详细教程

    1 先编写好PHP代码 我这里用记事本简单写了一个 2 打开phpstudy 检查下有没有下载PHP环境 启动Apache 3 把编写好的PHP文件复制到phpstudy目录下的www文件中 注 phpstudy可以通过 网站 管理 打开根
  • Vue常见简写 “:“ , “@“ , “#“ :帮助刚入行的伙伴快速看懂代码

    提示 本文仅仅是对Vue中比较常见的简写进行总结 适合刚入行有时看不懂代码的朋友 目录 文章目录 前言 一 是什么 1 是什么意思 2 怎么使用 二 是什么 1 是什么意思 2 怎么使用 三 是什么 1 是什么意思 2 怎么使用 总结 前言
  • JDBC 学习笔记(基础)

    示意图 目录 创建 JDBC 应用 例子 通过本地协议纯 Java 驱动程序实现JDBC 代码具体步骤 1 注册驱动 2 建立与数据库的连接 3 获取执行SQL语句的对象 Statement 4 定义执行 SQL 语句 5 操作结果集对象
  • 100. Same Tree

    Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x left NULL ri
  • 【Java】SpringBoot使用AOP进行日志解析打印+系统异常全局处理配置

    文章目录 前言 一 导入Lombok 二 创建日志打印Model 三 创建日志切面工具类 四 需要用到的一些常量类 五 创建接口请求切面 六 系统异常全局配置 总结 前言 为了方便项目部署在服务器之后 当出现BUG以及某些特殊需求时 会因为
  • Docker 笔记(全)

    1 关于Docker 1 1 概念 Docker 是一个开源的应用容器引擎 基于Go 语言 并遵从 Apache2 0 协议开源 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linu
  • 运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号 C 有丰富的内置运算符 分类如下 算术运算符 关系运算符 逻辑运算符 复合赋值运算符 位运算符 其他运算符 运算符优先级 由高到低 类别 运算符 结合性 后缀 gt 从左到右 一元 ty
  • python学得好 监狱进的早_蟒周刊-403-监狱中学 Python 改变人生

    200115 Zoom Quiet 大妈 用时 42 分钟 完成快译 200115 Zoom Quiet 大妈 用时 17 分钟 完成格式转抄 Ned was getting reports for a mysterious disk I
  • 铨顺宏RFID:应用超高频RFID技术智能档案管理系统

    根据超高频率RFID技术性智能化档案智能管理系统将改变这一现况 根据选用先 进的超高频率RFID自动检索技术应用和计算机系统技术性 以超高频率RFIDrfid标签做为信息储存媒体并黏贴在档案袋上 在超高频率RFID集成ic中储存该档案的基本
  • 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox2(ROOKIE)

    Vulnhub靶机FunBox2 ROOKIE 渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 FTP匿名访问 暴力破解 SSH私钥登入获取Shell Sudo提权
  • YOLO V4论文解读

    YOLO V4论文解读 一 YOLOV3回顾 二 YOLOV4中 三 Bag of freebies 数据扩充 模拟对象遮挡 结合多幅图像进行数据扩充 解决类别不平衡 label smoothing bbox Yolov4 use 四 Ba
  • java 字符串示例

    概述 最近项目上 需求 需要Android端在一段字符串分包处理 在此做个笔录 1 code public class Main public static void main String args System out println
  • mysql 1786_mysql错误:Statement violates GTID consistency

    在MYSQL中 执行建表语句时CREATE TABLE aaaa AS SELECT FROM menu 报 错误代码 1786 Statement violates GTID consistency CREATE TABLE SELECT
  • 训练loss不下降的原因总结

    表现 训练过程中loss值一直震荡 没有下降趋势 原因一 梯度消失 多因为网络深度过深 接近输入层的参数 梯度过小 解决方法 调整网络 激活函数relu batch normal 残差网络等 原因二 训练数据分布不均匀 这种情况对训练数据s
  • 力扣:350.两个数组的交集 II

    力扣 350 两个数组的交集 II 题目 给你两个整数数组 nums1 和 nums2 请你以数组形式返回两数组的交集 返回结果中每个元素出现的次数 应与元素在两个数组中都出现的次数一致 如果出现次数不一致 则考虑取较小值 可以不考虑输出结
  • 大数据课程I3——Kafka的消息流与索引机制

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 掌握Kafka的消息流处理 掌握Kafka的索引机制 掌握Kafka的消息系统语义 一 Kafka消息流处理 1 Producer 写入消息 流程说明 1 p
  • yolov5转tensorrt c++

    目录 yolo tensorrt 下载weights模型 onnx tensorrt project 编译问题解决 依赖项 自己生成weights模型 以及加载报错解决 生成引擎报错解决 批量预测 自动创建引擎 解决检测框乱的问题 提速 b
  • 对接微信米大师虚拟支付2.0文档

    话不多说 上代码 支付密钥算法 public static String calcPaySig String uri String postBody String appKey String needSignMsg uri postBody
  • 前端框架之Vue学习(一)

    1 Vue简介 一 vue 是一套用于构建用户界面的渐进式框架 二 Vue的核心特点 1 相应的数据变化 当数据发生改变 gt 视图自动更新 2 组合的视图组件 UI页面映射为组件树 划分组件可维护 可复用 可测试 三 MVC和MVVM M

随机推荐

  • 计算机中丢失ucrtbased.dll

    如果在运行某软件或编译程序时提示缺少 找不到ucrtbased dll等类似提示 在 https cn dll files com ucrtbased dll html 下载 解压 如果您的系统是64位的请将dll文件复制到C Window
  • 火猴之抽奖大转盘(firemonkey)

    活动中往往有抽奖环节 如何使用firemonkey制作一个抽奖的程序呢 效果 思路 1 rectangle line text作为可以转动的转盘和指针以及按钮 2 pie 共 10个作为不同颜色的底 每个startangle和endangl
  • Linux系统离线安装包及其依赖的下载安装

    一 概述 我们在Linux系统下进行项目开发时 经常会出现缺少某些依赖库或者开发包的情况 这时候一般会通过使用apt命令去联网下载 但在某些特殊情况下 例如终端硬件不支持网络连接 周边缺少有线与无线网络 或者需要批量安装程序到很多终端上时
  • Window平台---IPSEC客户端的安装

    1 安装主机证书 参见证书的申请与安装一节 2 从http vpn ebootis de 站点下载 ipsec exe 3 下载windwos2000的ipsec资源工具 http download microsoft com downlo
  • 代码保护软件VMProtect用户手册控制面板“项目”部分都有哪些功能?

    VMProtect是一种很可靠的工具 可以保护应用程序代码免受分析和破解 但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下 才能实现最好的效果 下载VMProtect最新试用版 接下来为大家介绍关于VMProtec
  • 移动距离(跳出C++向下取整带来的误区)

    移动举例问题 文章目录 移动举例问题 问题详情 问题分析 跳出误区 代码 问题详情 X星球居民小区的楼房全是一样的 并且按矩阵样式排列 其楼房的编号为 1 2 3 当排满一行时 从下一行相邻的楼往反方向排号 比如 当小区排号宽度为 6时 开
  • perl进程管理

    原文链接 https www jc2182 com perl perl process manager html 进程管理 您可以按照各种要求使用 Perl 来创建新流程 本教程将列出创建和管理Perl流程的一些重要且最常用的方法 您可以使
  • 使用ChatGPT帮助快速读书:《Rise of the Robots: Technology and the Threat of a Jobless Future》

    有了ChatGPT的帮助 读书也快了 英文版的书也可以快速了解其主要内容 不知道这样囫囵吞枣的阅读有没有其它副作用 先读了几本再说 Rise of the Robots Technology and the Threat of a Jobl
  • 【论文笔记】BEIT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers

    1 介绍 1 1 核心观点 当时的所有的重建目标都是关于低级图像元素的 低估了高级语义 Q 怎么去定义高级和低级语义 1 2 基本流程 VQ KD编码器首先根据可学习码本将输入图像转换为离散令牌 然后 解码器学习重建由教师模型编码的语义特征
  • 前后端获取当前日期

    js直接获取当天时间 标准格式年月日 时分秒 往后推迟时间 则添加 1小时 60 60 1000 new Date new Date 8 3600 1000 toJSON substr 0 19 replace T 后端获取 new Sim
  • git cherry-pick 解决开发分支选错问题

    应用场景 正常开发流程 创建分支并checkout转换为开发分支进行开发 但我在master开发后commit之后意识到了这个问题 重新git pull后并checkout新分支发现代码改动遗失 因为git pull 会把当前分支覆盖 在请
  • Network 【HDU - 3078】【LCA+暴力查询】

    题目链接 你要是真暴力这道题还是要T的 但是 做了剪枝就会过了 我们知道对于LCA每个节点有它自己的深度 在这里 我就将每个节点的深度数组当作了每个节点道最初根节点的距离了 然后 就是剪枝操作饿了 判断是否是可行解的时候用的是dis x d
  • 最新最全的angular4.x、anuglar2、anuglar8入门实战视频教程

    angular4 x视频教程强势来袭 忙碌的工作 不停的充电 好久没遇到这么实用的教程了 跟同行分享一下 写篇文章 放松放松 有好的技术资源的也希望大家多分享 我会关注学习的 angular4 x angular5 x angular8 x
  • 洛谷 P1876 开灯

    题目链接 https www luogu com cn problem P1876 include
  • 图像分析技术大比拼:图像分类、图像识别、目标检测的优缺点分析与算法比较

    计算机视觉是人工智能领域的一个重要分支 它旨在构建能够理解和处理图像 视频等视觉信息的计算机系统 在计算机视觉领域中 图像分类 图像识别和目标检测是三个重要的任务 一 图像分类 图像分类是计算机视觉领域最基础的任务之一 它的目的是将一张图像
  • Linux--高级IO

    高级IO 1 五种IO模型 阻塞IO 在内核将数据准备好之前 系统调用会一直等待 所有的套接字 默认都是阻塞方式 阻塞IO是最常见的IO模型 非阻塞IO 如果内核还未将数据准备好 系统调用仍然会直接返回 并且返回EWOULDBLOCK错误码
  • PyCharm创建virtualenv方法

    Python的版本众多 在加上适用不同版本的Python Package 这导致在同时进行几个项目时 对库的依赖存在很大的问题 这个时候就牵涉到对Python以及依赖库的版本管理 方便进行开发 virtualenv就是用来解决这个问题的 下
  • Kafka 验证部署(单机版)kafka-producer-perf-test.sh 吞吐量测试工具的基本使用

    1 测试topic创建与删除 1 创建一个测试topic 名为test topic 创建3个分区 每个分区分配1个副本 因为是单机kafka 如果是集群的话可以分配多个副本 如果分配的副本数大于broker的数量时 会报错 bin kafk
  • 华为内部面试题库---(14)

    1 关于虚拟地址空间的说法错误的是 A 进程地址空间是用多少分配多少 4G仅仅是最大限额 B 进程的地址空间并不一定对应实际的物理页 C 不同进程的不同虚拟地址可以映射到相同的物理页 D 不同进程的相同虚拟地址不能映射到相同的物理页 解答
  • KNN回归-预测二手车

    KNN是一个典型的分类模型 就时预测类别 例如苹果 香蕉等 预测的结果是 训练集上已经包含的类别 并不会预测出新的类别 二手车价格预测是预测车的价格 是数值 理应按照回归算法来算 怎么用knn来实现回归问题呢 找到最近的K样本之后 我们直接