首先做个热身准备:
numpy的eye函数,生成了一个6*6的对角矩阵
sparse将np数组转化成CSR格式的scipy稀疏矩阵,sparse函数只会存储非0元素
import numpy as np
from scipy import sparse
matrix = np.eye(6)
sparse_matrix = sparse.csr_matrix(matrix)
print(matrix )
[[1. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 1.]]
print(sparse_matrix)
(0, 0) 1.0
(1, 1) 1.0
(2, 2) 1.0
(3, 3) 1.0
(4, 4) 1.0
(5, 5) 1.0
%matplotlib inline
# 允许jutyper notebook进行内置实时绘图
import matplotlib.pyplot as plt
#生成从-20到20,元素数为10的等差数列
x = np.linspace(-20,20,10)
y = x**3+2*x**2+5*x+5
plt.plot(x,y,marker = "o")
[<matplotlib.lines.Line2D at 0x2294a28f860>]
K最近邻算法
基本原理
新数据点离谁最近,就和谁属于同一类,但若选择最近邻数等于1,就很容易出现“一叶障目,不见泰山”的情况,因此,选择增加近邻个数,与分类中近邻数最多的一类属于一类
应用—在分类中的应用
scikit中的make_blobs方法常被用来生成聚类算法的测试数据,直观地说,make_blobs会根据用户指定的特征数量、中心点数量、范围等来生成几类数据,这些数据可用于测试聚类算法的效果。
sklearn.datasets.make_blobs(n_samples=100, n_features=2,centers=3, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)[source]
- n_samples是待生成的样本的总数。
- n_features是每个样本的特征数。
- centers表示类别数。
- cluster_std表