聚类的应用与评估是一个高度定性的过程,在数据分析的探索阶段非常有用。聚类算法主要有三种:K均值、DBSCAN和凝聚聚类。这些算法都能控制聚类的精细程度。K均值和凝聚聚类允许用户指定所需的簇数量,而DBSCAN则通过eps参数来定义邻近度,进而影响簇的大小。这些方法适用于大规模的理想数据集,易于理解和操作,并且都能够形成多个簇。
无监督学习算法在探索性数据分析和预处理中发挥着关键作用。找到正确的数据表示对于监督学习和无监督学习的成功至关重要。预处理和分解技术在数据准备过程中扮演重要角色。
分解、流行学习和聚类都是深入了解数据的重要工具。在没有监督信息的情况下,它们是理解数据的主要手段。即使在监督学习中,探索性工具对于更好地理解数据特性同样重要。尽管难以量化无监督学习算法的实际效果,但不应因此而忽视它们的价值。
在scikit-learn中,所有算法——包括预处理、监督学习和无监督学习算法——都被实现为类。这些类被称为估计器。为了使用算法,需要先实例化特定类的对象。例如:
python
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
估计器类不仅包含算法本身,还保存了从数据中学习到的模型。在创建模型对象时,应设置所有相关参数,如正则化、复杂度控制以及簇的数量等。
所有估计器都有一个fit
方法,用于构建模型。fit
方法要求第一个参数始终是数据X,该数据由NumPy数组或SciPy稀疏矩阵表示,其中每一行代表一个数据点。监督算法还需要一个Y参数,这是一个一维NumPy数组,包含回归或分类的目标值(即标签)。
在scikit-learn中,模型主要有两种使用方法:predict
方法用于生成新输入的预测,transform
方法用于生成新的数据表示。此外,所有监督模型都有一个score(x_test, y_test)
方法,用于评估模型性能。其中,x_train
和y_train
代表训练数据和训练标签,而x_test
和y_test
则代表测试数据和测试标签(在适用的情况下)。