sklearn 估计器(estimator)接口的简单介绍
Scikit-learn 努力在为所有方法建立统一的接口。给定名为model
的 scikit-learn 估计器对象,可以使用以下方法(并非每个模型都有):
1. 适用于所有估计器
-
model.fit()
:拟合训练数据。对于监督学习应用,它接受两个参数:数据X
和标签y
(例如model.fit(X, y)
)。对于无监督学习应用,fit
仅接受单个参数,即数据X
(例如model.fit(X)
)。
2. 在监督估计器中使用
-
model.predict()
:给定训练好的模型,预测一组新数据的标签。此方法接受一个参数,即新数据X_new
(例如model.predict(X_new)
),并返回数组中每个对象的习得标签。 -
model.predict_proba()
:对于分类问题,一些估计器也提供此方法,该方法返回新观测值具有每个分类标签的概率。在这种情况下,model.predict()
返回概率最高的标签。 -
model.decision_function()
:对于分类问题,一些估计器提供不是概率的不确定性估计。对于二分类,decision_function >= 0
表示将预测为正类,而<0
表示负类。 -
model.score()
:对于分类或回归问题,大多数估计器实现了score
方法。分数在 0 到 1 之间,分数越大表示拟合越好。对于分类器,分数方法计算预测的准确度。对于回归器,得分计算预测的确定系数(R^2)。 -
model.transform()
:对于特征选择算法,这会将数据集缩减为所选特征。对于某些分类和回归模型(如某些线性模型和随机森林),此方法可将数据集缩减为信息量最大的特征。因此,这些分类和回归模型也可以用作特征选择方法。
3. 在无监督的估算器中使用
-
model.transform()
:给定一个无监督的模型,将新数据转换为新的基。这也接受一个参数X_new
,并根据无监督模型返回数据的新表示。 -
model.fit_transform()
:一些估计器实现了这个方法,它可以更有效地对相同的输入数据执行拟合和变换。 -
model.predict()
:对于聚类算法,predict
方法将为新数据点生成簇标签。并非所有聚类方法都具有此函数。 -
model.predict_proba()
:高斯混合模型(GMM)提供给定混合成分生成每个点的概率。 -
model.score()
:像 KDE 和 GMM这 样的密度模型,提供了数据在模型下的似然。
除了fit
之外,两个最重要的函数是produce
,它产生目标变量(y
),以及transform
,它产生数据的新表示(X
)。 下表展示了不同函数适用于哪种的模型:
model.predict |
model.transform |
---|---|
分类 | 预处理 |
回归 | 降维 |
聚类 | 特征提取 |
特征选择 |