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),其中SXk的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], [11], [21], [32]])
>>> y = np.array([111222])
>>> 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
估计量实例

sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis使用示例