[数据挖掘之scikit-learn] sklean.neighbors分类器实例详解

概述

K-近邻法是一种分类算法,原理可见《小瓜讲机器学习——分类算法(四)K近邻法算法原理及Python代码实现》。当K=1的时候一般称为最近邻算法。

3.1 sklearn.neighbors

3.1.1 sklearn.neighbors.KNeighborsClassifier
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2
											metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

参数说明:
1.n_neighbors(default=5):K近邻法中的k值,即计算邻域内的样本点数
2.weights(default=‘uniform’):邻域内的样本点的权重系数,可选值‘uniform’、‘distance’、【callable】(function defined by user)
3.algorithm:训练样本点的数据索引方式,有‘auto’、‘ball_tree’、‘KDTree’和‘brute’几种,其中KDTree原理见《小瓜讲机器学习——分类算法(四)K近邻法算法原理及Python代码实现》;
4.leaf_size(default=30):
5.p(default=2):计算距离的次方,p=2相当于欧式距离;
6.metric
7.metric_params
8.n_jobs

方法说明:
1.fit():训练模型;
2.predict():预测测试集;
3.predict_proba():预测测试集中每个样本分属不同类别的概率;
4.kneighbors_graph():获得测试样本的邻域内的训练样本点。

3.1.2 KNeighborsClassifier示例

栗子一
下例子是官网帮助文档中的

from sklearn.neighbors import KNeighborsClassifier

x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]

neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(x, y)
print(neigh.predict([[1.1]]))
print(neigh.predict_proba([[0.9]]))

输出为

[0]
[[0.66666667 0.33333333]]

栗子二
生成随机数

import numpy as np
import matplotlib.pyplot as plt
from  matplotlib.colors import ListedColormap
from sklearn.datasets.samples_generator import make_classification
from sklearn.neighbors import KNeighborsClassifier

# create random samples
feature_X, label_Y = make_classification(n_samples=1000, n_features=2, n_redundant=0, n_clusters_per_class=1, n_classes=3)

#plt.scatter(feature_X[:, 0], feature_X[:, 1], marker='o', c=label_Y)
#plt.show()

#train model
clf=KNeighborsClassifier(n_neighbors=5)
clf.fit(feature_X, label_Y)

#data visiualization
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])

x1_min = feature_X[:, 0].min() - 1
x1_max = feature_X[:, 0].max() + 1
x2_min = feature_X[:, 1].min() - 1
x2_max = feature_X[:, 1].max() + 1

x1, x2 = np.meshgrid(np.arange(x1_min, x1_max, 0.01), np.arange(x2_min, x2_max, 0.01))

label_predict = clf.predict(np.c_[x1.ravel(), x2.ravel()])
label_predict = label_predict.reshape(x1.shape)
plt.figure()
plt.pcolormesh(x1, x2, label_predict, cmap=cmap_light)
plt.scatter(feature_X[:, 0], feature_X[:, 1], c=label_Y, cmap=cmap_bold)
plt.xlim(x1.min(), x1.max())
plt.ylim(x2.min(), x2.max())

plt.show()

结果如下图
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Sc-learn是一个用于机器学习的Python库,它提供了各种机器学习算和工具,以及数据预处理和模型评估等功能。SklearnScikit-learn的简称,通常用于指代Scikit-learn库。 为了使用Scikit-learn库,你需要先安装Python环境,并在Python环境中安装一些必要的包,如NumPy、SciPy和Matplotlib等。你可以使用pip命令来安装Scikit-learn,比如pip install scikit-learn。另外,你也可以通过指定版本来安装特定版本的Scikit-learn,比如pip install scikit-learn==0.19.1。如果你有一个特定版本的Scikit-learn的安装文件,你可以使用pip install命令指定安装文件的路径来安装,比如pip install F:\Program Files\Python\whl_scikit_learn\scikit_learn-0.19.1-cp34-cp34m-win_amd64.whl。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [菜菜的scikit-learn课堂源码及文档.rar](https://download.csdn.net/download/cloud6688/12155958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/...](https://blog.csdn.net/qq_41185868/article/details/79682338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的骆驼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值