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 |