sklearn安装教程
方法一:下载官方.whl包
sklearn是基于NumPy、SciPy和matplotlib搭建而成的,因此在安装scikit-learn之前是要先安装这几个库的。官方的下载地址链接如下。点击下载
安装顺序如下:(一定要按照这个顺序下载,否则有可能报错。)
- NumPy+mkl库
- scipy库
- matplotlib库
- sklearn库
踩坑1:一定要下载和本地python版本相符的whl包,否则安装必报错(别问我为什么知道的,说多了都是泪啊)。
对了,因为这个是官方给出的下载链接,因此下载速度真的是慢的一批,所以如果各位小伙伴有条件的话,一定别忘了搭个梯子。
踩坑2:之前看别的教程,里面大多都是让下载numpy库,但是没有详细说明到底是哪个,我们可以看到下图,里面有numpy+mkl
和numpy+vanilla
两种,一定一定,切记要下载mkl的那个,不要因为vanilla小就贪图便宜(不说了,我再去哭一会)。
容易出错的地方都差不多过去了,剩下的就相对来说简单一些了,下载scipy库,也是要注意下载相应python版本的scipy
其实我们可以看出来,这里写道,install numpy+mkl before installing scipy
,也就是说,如果想要正常安装scipy库,必须有numpy+mkl库,所以大家一定要仔细阅读。
接下来是matplotlib
再然后可以下载pandas来帮助我们读取文件和作数据分析。
下面就是激动人心的scikit-learn下载了
require numpy+mkl(这波什么开,这波裂开)
开个玩笑,不过基本上小伙伴们可以避开上面几个坑,基本上还是比较顺利的。
接下来,找到下载的文件的路径,打开windows的DOS命令行窗口,执行如下命令:
pip install D:\python\numpy-1.19.5+mkl-cp38-cp38-win_amd64.whl(文件路径)
pip install D:\python\scipy-1.6.1-cp38-cp38-win_amd64.whl(文件路径)
pip install D:\python\matplotlib-3.3.4-cp38-cp38-win_amd64.whl(文件路径)
pip install D:\python\pandas-1.2.2-cp38-cp38-win_amd64.whl(文件路径)
pip install D:\python\scikit_learn-0.24.1-cp38-cp38-win_amd64.whl(文件路径)
依次执行上述命令,全部安装完成后,就可以尝试一下了。
引入一下所安装的库,全都没有报错,大功告成。
sklearn实战尝试
manifold learning algorithm(流式学习算法)
流式学习算法是一种降维算法,分为线性降维和非线性降维,大家有感兴趣的欢迎参考我的另一篇博客manifold learning algorithm
这里我们直接展示代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import manifold, datasets
from sklearn.utils import check_random_state
n_samples = 500 #样本个数
random_state = check_random_state(0)
p = random_state.rand(n_samples) * (2 * np.pi - 0.85) #所展示的图像的聚合程度
t = random_state.rand(n_samples) * np.pi
indices = ((t < (np.pi - (np.pi / 6))) & (t > ((np.pi / 6)))) #由于流式学习不可以对闭合的图形进行降维,因此我们需要将图像展开一个缺口,这一句控制的是展开口子的大小
colors = p[indices]
x, y, z = np.sin(t[indices]) * np.cos(p[indices]), \
np.sin(t[indices]) * np.sin(p[indices]), \
np.cos(t[indices])
fig = plt.figure()
ax = Axes3D(fig, elev=30, azim=-20) #三维图像展示
ax.scatter(x, y, z, c=p[indices], marker='o', cmap=plt.cm.rainbow)
plt.show()
紧接着我们得到如下图像:
我们使用LLE进行降维
train_data = np.array([x, y, z]).T
trans_data = manifold.LocallyLinearEmbedding(n_neighbors =20, n_components = 2,method='standard').fit_transform(train_data)
plt.scatter(trans_data[:, 0], trans_data[:, 1], marker='o', c=colors)
plt.show()
大功告成。