sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis¶
class sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(*, priors=None, reg_param=0.0, store_covariance=False, tol=0.0001)
二次判别分析
利用贝叶斯规则,对数据拟合类条件密度,生成一个二次决策边界的分类器。
该模型对每个类都拟合一个高斯密度。
0.17版本新增:QuadraticDiscriminantAnalysis。
更多信息请参阅用户指南。
参数 | 说明 |
---|---|
priors | ndarray of shape (n_classes, ), default = None 类先验。默认情况下,类的比例是由测试集推断而来。 |
reg_param | float, default = 0.0 通过将S2转换为 S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features) 来规范化每个类的协方差估计,其中S2对应于给定类的scaling_ 属性。 |
store_convariance | bool, default = False 若为真,若为真,该类的协方差矩阵会被明确计算并保存至 self.covariance_ 属性中。0.17版本新增内容 |
tol | float, default = 1.0e-4 我们认为利用奇异值的绝对阈值来估计Xk的秩是显著的,其中Xk是类k中样本的中心矩阵。该参数不影响预测。它只负责控制当特征被认为是共线时,发出警告。 0.17版本新增内容 |
属性 | 说明 |
---|---|
covariance_ | list of len n_classes of ndarray of shape (n_features, n_features) 对于每个类,给出用该类样本估计的协方差矩阵。估计是无偏的。只有当 store_covariance = True时才会出现 |
means_ | array-like of shape (n_classes, n_features) "类"均值。 |
priors_ | array_like of shape (n_classes,) 类先验(和为1)。 |
rotations_ | list of len n_classes of ndarray of shape (n_features, n_k) 对于每个结构为(n_features, n_k)的类k,其中 n_k = min(n_features, 类k中的元素个数) 。它是高斯分布的旋转,即其主轴。它对应于V ,特征向量的矩阵来自于Xk = U S Vt 的SVD,其中Xk 是k类样本的中心矩阵。 |
scalings_ | list of len n_classses of ndarray of shape (n_k, ) 每一类都包含了高斯分布沿其主轴的缩放,即旋转坐标系中的方差。对应 S^2 / (n_samples - 1) ,其中S 为Xk 的SVD奇异值的对角矩阵,Xk 为类k样本的中心矩阵。 |
classes_ | ndarray of shape (n_classes, ) 唯一类标签。 |
另见:
sklearn.discriminant_analysis.LinearDiscriminantAnalysis
线性判别分析
实例
>>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = QuadraticDiscriminantAnalysis()
>>> clf.fit(X, y)
QuadraticDiscriminantAnalysis()
>>> print(clf.predict([[-0.8, -1]]))
[1]
方法
方法 | 说明 |
---|---|
decision_function (self, X) |
对一个样本数组应用决策函数 |
fit (self, X, y) |
拟合数据然后将其进行转化 |
get_params (self[, deep]) |
获取当前估计量的参数 |
predict (self, X) |
预测X中的样本类型标签 |
predict_log_proba (self, X) |
返回分类的对数后验概率 |
predict_proba (self, X) |
返回分类的后验概率 |
score (self, X, y[, sample_weight]) |
返回给定测试数据及标签的精确度均值 |
set_params (self, **params) |
设置该估计量的参数 |
__init__(self, *, priors=None, reg_param=0.0, store_covariance=False, tol=0.0001)
初始化self。请参阅help(type(self))以获得准确的说明。
decision_function(self, X)
对一个样本数组应用决策函数。
决策函数等于(取决于一个常数向量)模型的对数后验概率,也就是,log p(y = k | x)。在二元分类中,作出如下设置来对应区别。log p(y = 1 | x) - log p(y = 0 | x)。参见 LDA和QDA分类器的数学公式。
参数 | 说明 |
---|---|
X | array-like of shape (n_samples, n_features) 样本数组(测试向量)。 |
返回值 | 说明 |
---|---|
C | ndarray of shape (n_samples,) or (n_sample, n_classes) 决策函数值与每个类、样本相关。在二分类的样例中,样本大小为(n_samples, ),给出正类的对数似然比。 |
fit(self, X, y)
根据给定的模型拟合LinearDiscriminantAnalysis模型
训练数据及参数。
0.19版本更变:store_covariance被移至主要构造函数
tol被移至主要构造函数
参数 | 说明 |
---|---|
X | array-like of shape (n_samples, n_features) 训练数据 |
y | array-like of shape (n_sample, ) 目标值 |
get_params(self, deep=True)
获取当前估计量的参数。
参数 | 说明 |
---|---|
deep | bool, default = True 如果为真,则将返回此估计量和作为估计量的所包含子对象的参数 |
返回值 | 说明 |
---|---|
params | mapping of string to any 参数名被映射至他们的值 |
predict(self, X)
预测X中的样本类型标签。
参数 | 说明 |
---|---|
X | array_like or sparse matrix, shape (n_samples, n_features) 样本 |
返回值 | 说明 |
---|---|
C | array, shape [n_samples] 每个样本所获得预测的分类标签 |
predict_log_proba(self, X)
返回分类的对数后验概率。
参数 | 说明 |
---|---|
X | array-like of shape (n_sample, n_features) 数组样本或测试向量 |
返回值 | 说明 |
---|---|
C | ndarray of shape (n_sample, n_classes) 各类的分类对数后验概率 |
predict_proba(self, X)
估计概率
参数 | 说明 |
---|---|
X | array-like of shape (n_sample, n_features) 数组样本或测试向量 |
返回值 | 说明 |
---|---|
C | ndarray of shape (n_sample, n_classes) 各类的分类对数概率 |
score(self, X, y, sample_weight=None)
返回给定测试数据和标签的平均精度。
在多标签分类中,这是一个严格矩阵下的子集精度,因为你需要对每个样本正确预测每个标签集。
参数 | 说明 |
---|---|
X | array-like of sshape (n_samples, nfeatures) 测试样本 |
y | array-like of shape (n_sample, ) or (n_samples, n_outputs) X中结果为真的标签 |
返回值 | 说明 |
---|---|
score | float self.predict(X) wrt. y.的平均精度 |
set_params(self, **params)
设置当前估计量的参数。
该方法适用于简单估计量和嵌套对象(如pipline)。后者具有形式为<component>__<parameter>
的参数,这样就让更新嵌套对象的每个组件成为了可能。
参数 | 说明 |
---|---|
f_params | dict 估计量参数 |
返回值 | 说明 |
---|---|
self | object 估计量实例 |