Python机器学习库笔记(7)——scikit-learn:聚类&降维
本文将介绍以下几种聚类、降维算法在scikit-learn中的使用方法:
聚类:
- K-Means
- DBSCAN
降维:
- PCA
- LDA
聚类
K-Means
参数:
n_clusters
:要分成的类别数,默认值为8。init
:初始化聚类中心的方法,默认为"k-means++"
,它将智能选择初始聚类中心;"random"
将随机选择初始聚类中心;也可传入一组数组指定为初始聚类中心。n_init
:用不同的初始化聚类中心运行算法的次数,默认10。max_iter
:最大迭代次数,默认300。tol
:容差,默认1e-4。precompute_distances
:是否预先计算距离(更快但消耗更多内存)。选"auto"
会在n_samples * n_clusters > 12
时不预先计算距离。verbose
:是否冗余输出,默认0。random_state
:随机数种子。copy_x
:是否复制训练集,默认为True
,如果为False
则会直接在原数据上修改。n_jobs
:使用的核心数。默认None
为单核。algorithm
:可选"auto"
(默认)、"full"
或"elkan"
,"auto"
自动选择"elkan"
处理稠密数据,"full"
处理稀疏数据。
属性:
cluster_centers_
:返回聚类中心。labels_
:返回聚类后每个点的标签。inertia_
:返回样本到最近聚类中心距离的平方和。n_iter_
:返回迭代次数。
1 | from sklearn.cluster import KMeans |
DBSCAN
参数:
eps
:两个样本被认为在同一邻域内的最大距离。默认为0.5。min_samples
:如果一个点被视为核心点,它邻域内至少包含的点的数量(包括这个点本身)。默认为5。metric
:距离度量函数,默认为"euclidean"
欧式距离。metric_params
:距离度量函数的附加参数。algorithm
:计算近邻距离的算法,可选"auto"
(默认)、"ball_tree"
、"kd_tree"
、"brute"
,该参数类似于KNN。leaf_size
:算法选择KD树或者球树时,该参数用于控制叶节点数量,默认值30。p
:闵式距离的度量,p=1时为曼哈顿距离,p=2时为欧式距离。
属性:
core_sample_indices_
:返回核心点的index列表。components_
:返回核心点的副本列表。labels_
:返回聚类后每个点的标签,噪声点用-1表示。
1 | from sklearn.cluster import DBSCAN |
降维
PCA
参数:
n_components
:降维之后保留的维数,如果不指定则该值取样本数和特征数间的较小值。可指定为一个整数,即所需保留的维数。如果设为"mle"
且svd_solver == "full"
,会采用MLE算法自动选择一个合适的维度。如果是一个浮点数且svd_solver == "full"
,它代表降维后的能保留的信息比值。如果svd_solver == "arpack"
,该值会被严格限制为小于样本数和特征数。copy
:是否创建数据副本而不覆盖原数据,默认为True
。whiten
:是否白化,即去除降维后的特征之间的相关性并且方差相同。默认为False
。svd_solver
:SVD采用的算法,默认"auto"
会根据输入数据自动挑选最优解,具体方法有"full"
、"arpack"
、"randomized"
。tol
:svd_solver == "arpack"
时,奇异值的误差容忍度,默认0.。iterated_power
:svd_solver == "randomized"
时的迭代次数,默认"auto"
。random_state
:随机数种子。
属性:
components_
:主成分的轴的方向。explained_variance_
:降维后各成分的方差。explained_variance_ratio_
:降维后各成分的方差所占的比值。singular_values_
:降维后主成分的奇异值。mean_
:降维后主成分的经验均值。n_components_
:降维之后保留的维数。noise_variance_
:噪声协方差。
1 | from sklearn.decomposition import PCA |
LDA
参数;
solver
:算法,可选"svd"
(默认)、"lsqr"
、"eigen"
shrinkage
:正则化参数,默认None
,可指定为0到1之间的浮点数,也可选"auto"
自动选择。该参数在算法使用"svd"
时无效。priors
:类别的先验概率。n_components
:降维之后保留的维数,必须小于n_classes - 1
。store_covariance
:是否计算类的协方差矩阵,默认为False
。tol
:奇异值的误差容忍度,默认1e-4。
属性:
coef_
:权重系数。intercept_
:截距。covariance_
:协方差矩阵。explained_variance_ratio_
:降维后各成分的方差所占的比值。只有选择"svd"
算法时可用。means_
:类的均值。priors_
:类的先验概率。scalings_
:用于降维性能度量。xbar_
:总体均值。classes_
:独特的类别标签。
1 | from sklearn.discriminant_analysis import LinearDiscriminantAnalysis |