估计器接口小结
2019-11-24 本文已影响0人
编程回忆录
scikit-learn中的所有算法——无论是预处理、监督学习还是无监督学习算法——都被实现为类。这些类在scikit-learn中叫作估计器(estimator)。为了应用算法,你首先需要将特定类的对象实例化:
from sklearn.linear_model import LogisticRegression
logreg=LogisticRegression()
估计器包含算法,也保存了利用算法从数据中学到的模型。
在构建模型对象时,你应该设置模型的所有参数。这些参数包括正则化、复杂度控制、要找到的簇的数量,等等。所有估计器都有fit方法,用于构建模型。fit方法要求第一个参数总是数据X,用一个Numpy数组或Scipy稀疏矩阵表示,其中每一行代表一个数据点。数据X总是被假定为具有连续值(浮点数)的Numpy数组或Scipy稀疏矩阵。监督算法还需要有一个y参数,它是一维Numpy数组,包含回归或分类的目标值(即已知的输出标签或响应)。
在scikit-learn中,应用学到的模型主要有两种方法。要想创建一个新输出形式(比如y)的预测,可以用predict方法。要想创建输入数据X的一种新表示,可以用transform方法。如下表汇总了predict方法和transform方法的使用场景:
estimator.fit(X_train,[y_train]) |
| estimator.predict(X_test) estimator.transform(X_test) | |
|---|---|
| 分类 | 预处理 |
| 回归 | 降维 |
| 聚类 | 预处理 |
| 聚类 | 特征选择 |
此外,所有监督类型都有score(X_test,y_test)方法,可以评估模型,在上表中,X_train和y_train指的是训练数据和训练标签,而X_test和y_test指的是测试数据和测试标签(如果适用的话)