'''
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的相关属性

KNN回归-预测二手车相关推荐

  1. R语言使用caret包的knnreg函数拟合KNN回归模型:使用predict函数和训练好的模型进行预测推理、使用plot函数可视化线图对比预测值和实际值曲线

    R语言使用caret包的knnreg函数拟合KNN回归模型:使用predict函数和训练好的模型进行预测推理.使用plot函数可视化线图对比预测值和实际值曲线 目录

  2. Task09基于模拟数据集的KNN回归、基于马绞痛数据集的KNN数据预处理+KNN分类pipeline

    Task09 基于模拟数据集的KNN回归.基于马绞痛数据集的KNN数据预处理+KNN分类pipeline 一.学习内容概括 学习资料: 1.阿里云天池:https://tianchi.aliyun.c ...

  3. KNN回归算法【配有案例演示】

    KNN回归算法 KNN回归算法就是给定数据集与结果,预测后面新出的数据集的结果.与前面KNN最邻近算法比较类似,最临近算法是求出预测数据集与训练数据集的每个点之间的距离,取前k个数据集的结果集,把结果 ...

  4. 分类预测 | MATLAB实现KNN分类预测(SA-KNN、GOA-KNN对比)

    分类预测 | MATLAB实现KNN分类预测(SA-KNN.GOA-KNN对比)------模拟退火算法(SA算法).蝗虫优化算法(GOA) 目录 分类预测 | MATLAB实现KNN分类预测(SA- ...

  5. KNN回归在无线定位上的应用

    KNN回归在无线定位上的应用 Python KNN 无线定位 回归 1.KNN无线指纹定位代码 #coding:utf-8 import random import math# 提取训练集与测试集数据 ...

  6. 机器学习 手写KNN算法预测城市空气质量

    文章目录 一.KNN算法简介 二.KNN算法实现思路 三.KNN算法预测城市空气质量 1. 获取数据 2. 生成测试集和训练集 3. 实现KNN算法 一.KNN算法简介 KNN(K-Nearest N ...

  7. sklearn回归 预测下一期双色球

    sklearn回归 预测下一期双色球 最近接到预测双色球的任务,因为随机性过大,尝试搭建DNN RNN LSTM 都有较大的LOSS(随机性太强).故用SK里自带的回归来预测. 首先我们爬取数据 im ...

  8. KNN算法预测iris数据集

    KNN算法预测iris数据集 1.数据集介绍 鸢尾花灰Iris数据集中有150个样本,每个样本有4个特征,1个标签.其中,鸢尾花种类可取0.1.2,分别代表山鸢尾setosa.变色鸢尾versicol ...

  9. 几种常用回归算法——线性回归、支持向量机回归和KNN回归

    欢迎关注,敬请点赞! 台湾何时归--几种常用回归算法 线性回归LR(Linear Regression) 代码展示(加噪声的正旋函数,狭义线性回归) 支持向量机回归SVR(Support Vector ...

  10. 不同k值对KNN算法预测准确率的影响

    不同k值对KNN算法预测准确率的影响 本文通过KNN算法对鸢尾花分类案例,通过尝试集不同的k值来查看预测准确率和误差率的情况 from __future__ import print_function ...

最新文章

  1. 基于web的可定制数据填报平台
  2. 《网站设计 开发 维护 推广 从入门到精通》—— 2.3 页面设计创意思维
  3. [每日一问]虚拟化网络设计中为什么建议采用链路聚合
  4. android eclipse的环境配置
  5. (82)FPGA仿真停止激励(stop)
  6. 使用libbpf-bootstrap构建BPF应用程序
  7. 构建复杂的应用程序(二)—— visual studio 下 C/C++ 项目开发
  8. 用python画图代码-Python实战小程序利用matplotlib模块画图代码分享
  9. 前端开发 Grunt 之 Connect
  10. 软件包管理器前端工具yum的使用
  11. mysql日期序列填充_mysql – 如何使用一系列日期填充表格?
  12. 美政府停摆或考验机场安检 携枪旅客曾无障碍登机
  13. 2022年金融与互联网资质牌照研究报告
  14. 汇编语言王爽(第四版)实验一
  15. 2021中国科学院文献情报中心期刊分区表 计算机
  16. 服务器编程之路:进无止境(上)
  17. 开博第一篇,为什么要开通博客,开通博客的申请理由
  18. 长沙好吃的地方?这个好吃的地方你可能真的没来过
  19. 如何用python爬虫获取百度贴吧内容
  20. idea生成文档时:编码GDK的不可映射字符

热门文章

  1. 深入学习理解(5):java:并发容器之CopyOnWriteArrayList
  2. 利用java计算日期是星期几
  3. 快递到件越来越多,行政将如何做好快递收发管理工作?
  4. 服务器无线路由,服务器无线路由设置
  5. 芬兰计算机研究生申请表,超完整的芬兰研究生申请攻略
  6. 【算法刷题】—7.16前缀和、哈希表、双指针的结合
  7. 变化检测DASNet论文介绍
  8. 前端处理 CST 格式时间
  9. Python爬虫-Weibo模拟登录及crawling
  10. 高考600分大学计算机,高考600分属于什么水平,能上什么大学?