KNN分类实例(二元分类)【机器学习算法一KNN1】

1.代码

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
import numpy as np

data = make_blobs(n_samples=200, centers =2,random_state=8)
X, y = data

clf = KNeighborsClassifier()
clf.fit(X,y)

#下面的代码用于画图
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, .02),np.arange(y_min, y_max, .02))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
#预测所提供数据的类标签
Z = Z.reshape(xx.shape)
#在不更改数组数据的情况下为数组提供新形状
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Pastel1)
#画一个四边形网格
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.spring, edgecolor='k')
#画出x和y的散点图
plt.xlim(xx.min(), xx.max())
#获取或设置当前轴的x极限
plt.ylim(yy.min(), yy.max())
plt.title("Classifier:KNN")
plt.scatter(6.75,4.82, marker='*',c='red', s=200)
plt.show()
print('新数据点的分类是:',clf.predict([[6.75,4.82]]))

2. 运行结果

KNN分类实例(二元分类)【机器学习算法一KNN1】_第1张图片

3.知识点

  1. X,Y = numpy.meshgrid(x, y)生成坐标矩阵X,Y
    输入的x,y,就是网格点的横纵坐标列向量(非矩阵);
    输出的X,Y,就是坐标矩阵。’’’
  2. numpy.arange(start, stop, step, dtype = None)在给定间隔内返回均匀间隔的值,返回的是ndarray
    start —— 开始位置,数字,可选项,默认起始值为0;
    stop —— 停止位置,数字;
    step —— 步长,数字,可选项, 默认步长为1,如果指定了step,则还必须给出start;
    dtype —— 输出数组的类型。 如果未给出dtype,则从其他输入参数推断数据类型。
  3. 常见的pyplot、sklearn.neighbors.KNeighborsClassifier、numpy.reshape
matplotlib.pyplot 链接
sklearn.neighbors.KNeighborsClassifier 链接scikit learn用户使用说明
numpy.reshape 链接

你可能感兴趣的:(机器学习)