Scikit-learn安装
sklearn库依赖于numpy、scipy、matplotlib库,首先安装numpy,然后安装scipy、matplotlib库,最后安装scikit-learn库。可以通过anaconda进行安装或者通过依赖关系,逐个进行pip install进行安装。
Scikit-learn的数据集介绍
scikit-learn数据集如下图所示,包括了小数据集和大数据集,采用函数方法调用。
# 加载boston房价信息示例
from sklearn.datasets import load_boston
data, target = load_boston(return_X_y=True)
print(data.shape)
print(target.shape)
#加载手写数字库
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
digits = load_digits()
plt.matshow(digits.images[3])
plt.show()
sklearn库包括6大部分,包括分类、回归、聚类、降维、模型选择以及数据预处理。具体的函数如下图所示:
Sklearn无监督学习使用
无监督学习采用无标签数据,处理数据分布或者数据关系,包括聚类和降维。
聚类采用距离进行衡量样本的分类情况,可以采用欧氏距离、曼哈顿距离、马氏距离(包含了属性的标准差)、余弦相似度(向量相似度的一个方面)。
sklearn聚类算法包含于sklearn.cluster中,包含了k-means、邻近传播算法、DBSCAN等。
sklearn.cluster可以采用多种数据形式作为输入,标准形式为[样本个数 特征个数],还可以采用其他方式进行。
降维,在保证数据所具有的特征情况下,将高维数据转化为低维数据的过程,可用于数据可视化或者精简数据的作用。
sklearn降维算法包含于sklearn.decomposition,目前有7种降维算法。
聚类之kmeans方法使用
kmeans算法将数据分为k个簇,簇内相似度较高,簇间相似度较低。其操作过程如下图所示。
涉及到的过程包括:如何随机选取k个点;如何计算其余点与选取点的距离;如何计算每一类的均值;如何判断停止;如何证明有效性。
采用kmeans进行聚类操作,数据为31个身份居民家庭平均支出,包含8个维度数据,对于31个省份进行聚类。
选取数据点采用了Kmeans的初始化算法方法,由于没有数据,这里采用load_iris()数据进行分类,存在一定的分类误差,大约有0.09~0.11的分类误差。
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
if __name__ == '__main__':
# import iris data: x is the iris feature and y is the class
x, y = load_iris(return_X_y=True)
# the number clusters is 3
km = KMeans(n_clusters=3,init='k-means++', max_iter=10000)
label = km.fit_predict(x)
# evaluate the accuracy
error_cnt = 0
sum_cnt = 0
for i in