K-NN回归算法
from sklearn.datasets import load_iris
import numpy as np
import matplotlib.pyplot as plt iris = load_iris()
iris_data = iris.data
iris_target = iris.target
print(iris.feature_names) X = iris_data[:,0:2]
y = iris_data[:,3]
#['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] #We'll try to predict the petal length based on the sepal length and width.
#We'll also fit a regular linear regression to see how well the k-NN regression does in comparison #线性回归
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print ("The MSE is: {:.2}".format(np.power(y - lr.predict(X),2).mean())) #K-NN 回归
from sklearn.neighbors import KNeighborsRegressor
knnr = KNeighborsRegressor(n_neighbors=10)
knnr.fit(X, y)
print ("The MSE is: {:.2}".format(np.power(y - knnr.predict(X),2).mean())) #仅仅显示预测函数如何使用而已
print(knnr.predict(np.array([3.0,5.0]).reshape(1,-1))) #Let's look at what the k-NN regression does when we tell it to use the closest 10 points for regression:
f, ax = plt.subplots(nrows=2, figsize=(7, 10))
ax[0].set_title("Predictions")
ax[0].scatter(X[:, 0], X[:, 1], s=lr.predict(X)*80, label='LRPredictions', color='c', edgecolors='black')
ax[1].scatter(X[:, 0], X[:, 1], s=knnr.predict(X)*80, label='k-NNPredictions', color='m', edgecolors='black')
ax[0].legend()
ax[1].legend()
f.show() #针对某一个类别(KNN的效果优于线性)
setosa_idx = np.where(iris.target_names=='setosa')
setosa_mask = (iris.target == setosa_idx[0])
print(y[setosa_mask][:20])
print(knnr.predict(X)[setosa_mask][:20])
print(lr.predict(X)[setosa_mask][:20]) #针对某一个具体的点
#The k-NN regression is very simply calculated taking the average of the k closest point to the point being tested.
#Let's manually predict a single point:
example_point = X[0]
'''
原始真值
>>> X[0]
array([ 5.1, 3.5])
>>> y[0]
0.20000000000000001
''' from sklearn.metrics import pairwise
distances_to_example = pairwise.pairwise_distances(X)[0] #X[0]和其它150个元素(包括自己)的距离
ten_closest_points = X[np.argsort(distances_to_example)][:10] #排序后,寻找10个距离最小的索引
ten_closest_y = y[np.argsort(distances_to_example)][:10]#所这些最下的10个已知数找出来
print(ten_closest_y.mean()) #We can see that this is very close to what was expected.

['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
The MSE is: 0.15
The MSE is: 0.069
[ 0.2]
[ 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 0.2 0.2 0.1 0.1 0.2
0.4 0.4 0.3 0.3 0.3]
[ 0.28 0.17 0.21 0.2 0.31 0.27 0.21 0.31 0.19 0.17 0.29 0.28
0.17 0.19 0.26 0.27 0.27 0.28 0.27 0.31]
[ 0.44636645 0.53893889 0.29846368 0.27338255 0.32612885 0.47403161
0.13064785 0.42128532 0.22322028 0.49136065 0.56918808 0.27596658
0.46627952 0.10298268 0.71709085 0.45411854 0.47403161 0.44636645
0.73958795 0.30363175]
0.28
K-NN回归算法的更多相关文章
- K邻近回归算法
代码: # -*- coding: utf-8 -*- """ Created on Fri Jul 13 10:40:22 2018 @author: zhen &qu ...
- Lasso回归算法: 坐标轴下降法与最小角回归法小结
前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结.里面对线程回归的正则化也做了一个初步的介绍.提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归.但是对 ...
- 基于Python的函数回归算法验证
看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归回归方法就是寻找方差的最小值y = kx + bxi, yiy ...
- 机器学习之Logistic 回归算法
1 Logistic 回归算法的原理 1.1 需要的数学基础 我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ= θ - α Σ [( hθ( ...
- 机器学习之logistic回归算法与代码实现原理
Logistic回归算法原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10033567.html ...
- 机器学习经典算法具体解释及Python实现--K近邻(KNN)算法
(一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值 ...
- Spark MLlib架构解析(含分类算法、回归算法、聚类算法和协同过滤)
Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基 ...
- sklearn调用逻辑回归算法
1.逻辑回归算法即可以看做是回归算法,也可以看作是分类算法,通常用来解决分类问题,主要是二分类问题,对于多分类问题并不适合,也可以通过一定的技巧变形来间接解决. 2.决策边界是指不同分类结果之间的边界 ...
- 机器学习算法-logistic回归算法
Logistic回归算法调试 一.算法原理 Logistic回归算法是一种优化算法,主要用用于只有两种标签的分类问题.其原理为对一些数据点用一条直线去拟合,对数据集进行划分.从广义上来讲这也是一种多元 ...
- 机器学习-K近邻(KNN)算法详解
一.KNN算法描述 KNN(K Near Neighbor):找到k个最近的邻居,即每个样本都可以用它最接近的这k个邻居中所占数量最多的类别来代表.KNN算法属于有监督学习方式的分类算法,所谓K近 ...
随机推荐
- scala语法解析(解码指环)
看惯了JAVA的语法,再看scala的语法,有的晦涩难懂.正好遇到一个介绍scala语法的文章,就直接截图留念.省的再临时抱佛脚了.
- GCC 常用选项详解
参考gcc man page 参考:http://www.cppblog.com/seman/archive/2005/11/30/1440.html gcc and g++分别是gnu的c & ...
- R语言图形base系统(一)
一般R作图有三大绘图系统:base系统.ggplot2绘图系统.lattice绘图系统. 本篇主要介绍base系统绘图时的图形参数.一般用plot()函数来完成.在R中,若 ...
- STM32 HAL库 UART使用printf
// 添加这个函数 int fputc(int ch,FILE *f) { uint8_t temp[]={ch}; HAL_UART_Transmit(&UartHandle,temp,,) ...
- Oracle数据库体系结构(7) 表空间管理1
表空间是Oracle数据库最大的逻辑存储结构,有一系列段构成.Oracle数据库对象存储结构的管理主要是通过表空间的管理实现的. 1.表空间的分类 表空间根据存储类型不同分为系统表空间和非系统表空间 ...
- 07 09&10
0709: 排名还是不高,毕竟没切出来题. 第一题dalao: 要求你做一个三维数点,只回答最终有多少个点对的状态是完全小于(可比?)的.(n<=2000000) 特殊限制是三维都是随机排列. ...
- thinkphp 的 Action 控制器中的系统常量总结
THINK_PATH // ThinkPHP系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 CONTROLLER_NAME // 当前控制器名称 MODULE_N ...
- ios UIImageWriteToSavedPhotosAlbum报错 NSPhotoLibraryAddUsageDescription
最近学习IOS相关知识. 视频课程[UIImage](https://www.imooc.com/video/12718) 相关知识点: 存储一张本地图片到系统相册中. API: UIImageWri ...
- Windows Server 2008 R2 备份与恢复详细实例
Windows Server 2008 R2中Windows Server Backup备份与恢复 本实验是在虚拟机操作,因公司的需求,将备份存储到另一台服务器,于是我在现有linux备份服务器搭建了 ...
- python基础-条件语句if
if语句: if 判断条件: 执行语句 else: 执行语句 flag = Falsename = 'huipaodexiong'if name == 'python': flag = True ...