博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
K邻近回归算法
阅读量:5998 次
发布时间:2019-06-20

本文共 1503 字,大约阅读时间需要 5 分钟。

代码:

1 # -*- coding: utf-8 -*- 2 """ 3 Created on Fri Jul 13 10:40:22 2018 4  5 @author: zhen 6 """ 7 import mglearn  8 from sklearn.neighbors import KNeighborsRegressor 9 from sklearn.model_selection import train_test_split10 import matplotlib.pyplot as plt11 import numpy as np12 13 x, y = mglearn.datasets.make_wave(n_samples=40)14 # 将wave数据集分为训练集和测试集15 x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)16 17 fig, axes = plt.subplots(1, 3, figsize=(15, 4))18 19 # 创建1000个数据点,在-3到3之间均匀分布20 line = np.linspace(-3, 3, 1000).reshape(-1, 1)21 for n_neighbors, ax in zip([1, 3, 9],axes):22     # 利用1个,3个和9个邻居分别进行预测23     reg = KNeighborsRegressor(n_neighbors=n_neighbors)24     reg.fit(x_train, y_train)25     ax.plot(line, reg.predict(line))26     ax.plot(x_train, y_train, '^', c=mglearn.cm2(0), markersize=8)27     ax.plot(x_test, y_test, 'v', c=mglearn.cm2(1), markersize=8)28     ax.set_title(29             "{} neighbor(s)\n train score:{:.2f} test score:{:.2f}".format(30                     n_neighbors, reg.score(x_train, y_train),31                     reg.score(x_test, y_test)))32     ax.set_xlabel("Feature")33     ax.set_ylabel("Target")34 axes[0].legend(["Model prediction", "Training data/target", "Test data/target"], loc="best")

结果:

 总结:

  K-NN的优点之一就是模型很容易理解,通常不需要过多调节就可以得到不错的性能。

在考虑使用更高级的技术之前,尝试此算法是一种很好的基准方法。
构建模型的速度通常很快,但如果训练集很大(特征数很多或样本基数很大),预测速度可能会比较慢。
因此,使用此算法之前进行数据预处理是很重要的!
此算法对特征数很多(几百或更多)的数据集效果往往不好,特别是稀疏数据集!

转载于:https://www.cnblogs.com/yszd/p/9303971.html

你可能感兴趣的文章
类库、委托
查看>>
数列分块入门 9 / 蒲公英
查看>>
UIAlertView和UIAlertControl
查看>>
JavaScript 正则表达式
查看>>
python ctypes 探究 ---- python 与 c 的交互
查看>>
2016.5.9
查看>>
图片上传预览,兼容IE
查看>>
基础数据类型之集合和深浅copy,还有一些数据类型补充
查看>>
Python-字典
查看>>
chapter7.1、数据分发与队列queue
查看>>
一个在linux环境执行io操作的bug
查看>>
【2016】十一月英语学习总结
查看>>
eclipse下载SpringBoot插件及创建SpringBoot项目
查看>>
Select语句调用ExecuteNonQuery 注意
查看>>
redis的数据类型
查看>>
C 语言 define 变参__VA_ARGS__使用
查看>>
OpenGL step to step(1)
查看>>
MongoDB安装
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (八)消息总线(Spring Cloud Bus)
查看>>
Java泛型深入理解
查看>>