GraphicalLasso#
- class sklearn.covariance.GraphicalLasso(alpha=0.01, *, mode='cd', covariance=None, tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, eps=np.float64(2.220446049250313e-16), assume_centered=False)[源代码]#
Sparse inverse covariance estimation with an l1-penalized estimator.
有关用法示例,请参见 股票市场结构可视化 .
阅读更多的 User Guide .
在 v0.20 版本发生变更: GraphLasso已重命名为GraphicalLasso
- 参数:
- alpha浮动,默认=0.01
正规化参数:Alpha越高,正规化越多,逆协方差越稀疏。范围为(0,inf]。
- mode' CD ',',默认=' CD '
要使用的Lasso解算器:坐标下降或LARS。将LARS用于非常稀疏的基础图,其中p > n。其他地方更喜欢数字上更稳定的CD。
- covariance“预先计算”,默认=无
如果协方差是“预先计算的”,则输入数据
fit
假设为协方差矩阵。如果None
,根据数据估计经验协方差X
.Added in version 1.3.
- tolfloat,默认= 1 e-4
声明收敛的容差:如果对偶间隙低于此值,则停止迭代。范围为(0,inf]。
- enet_tolfloat,默认= 1 e-4
用于计算下降方向的弹性网解算器的容差。此参数控制给定列更新的搜索方向的准确性,而不是总体参数估计的准确性。仅用于模式=' CD '。范围为(0,inf]。
- max_iterint,默认=100
最大迭代次数。
- verbose布尔,默认=假
如果verbose为True,则在每次迭代时绘制目标函数和双重间隙。
- epsfloat,默认=eps
Cholesky对角线因子计算中的机器精度正规化。对于条件非常恶劣的系统,请增加这一比例。默认值为
np.finfo(np.float64).eps
.Added in version 1.3.
- assume_centered布尔,默认=假
如果为True,则数据在计算前不居中。在处理均值几乎为零但不完全为零的数据时很有用。如果为假,则在计算之前将数据集中。
- 属性:
- location_形状的nd数组(n_features,)
估计位置,即估计平均值。
- covariance_形状的nd数组(n_features,n_features)
估计协方差矩阵
- precision_形状的nd数组(n_features,n_features)
估计的伪逆矩阵。
- n_iter_int
运行的迭代次数。
- costs_(objective,dual_gap)对列表
每次迭代时目标函数和双重差距的值列表。仅在Return_costs为True时返回。
Added in version 1.3.
- n_features_in_int
期间看到的功能数量 fit .
Added in version 0.24.
- feature_names_in_ :nd形状数组 (
n_features_in_
,)nd数组形状( Names of features seen during fit. Defined only when
X
has feature names that are all strings.Added in version 1.0.
参见
graphical_lasso
L1-惩罚协方差估计量。
GraphicalLassoCV
具有l1罚分的交叉验证选择的稀疏逆协方差。
示例
>>> import numpy as np >>> from sklearn.covariance import GraphicalLasso >>> true_cov = np.array([[0.8, 0.0, 0.2, 0.0], ... [0.0, 0.4, 0.0, 0.0], ... [0.2, 0.0, 0.3, 0.1], ... [0.0, 0.0, 0.1, 0.7]]) >>> np.random.seed(0) >>> X = np.random.multivariate_normal(mean=[0, 0, 0, 0], ... cov=true_cov, ... size=200) >>> cov = GraphicalLasso().fit(X) >>> np.around(cov.covariance_, decimals=3) array([[0.816, 0.049, 0.218, 0.019], [0.049, 0.364, 0.017, 0.034], [0.218, 0.017, 0.322, 0.093], [0.019, 0.034, 0.093, 0.69 ]]) >>> np.around(cov.location_, decimals=3) array([0.073, 0.04 , 0.038, 0.143])
- error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[源代码]#
计算两个协方差估计量之间的均方误差。
- 参数:
- comp_cov形状类似阵列(n_features,n_features)
要比较的协方差。
- norm{“frobenius”,“spectral”},default=“frobenius”
用于计算误差的范数类型。可用的错误类型:- 'frobenius'(默认):sqrt(tr(A^t.A))- 'spectral':sqrt(max(eigenvalues(A^t.A))其中A是错误
(comp_cov - self.covariance_)
.- scaling布尔,默认=True
如果为True(默认),则将误差平方规范除以n_features。如果为假,则不会重新调整误差平方规范。
- squared布尔,默认=True
是计算平方误差规范还是误差规范。如果为True(默认),则返回平方误差规范。如果为假,则返回错误规范。
- 返回:
- result浮子
之间的均方误差(在Frobenius范数的意义上)
self
和comp_cov
协方差估计量
- fit(X, y=None)[源代码]#
将GraphicalLasso模型与X匹配。
- 参数:
- X形状类似阵列(n_samples,n_features)
计算协方差估计值的数据。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- self对象
返回实例本身。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
- 返回:
- routingMetadataRequest
A
MetadataRequest
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- mahalanobis(X)[源代码]#
计算给定观测值的平方马哈拉诺比斯距离。
- 参数:
- X形状类似阵列(n_samples,n_features)
我们计算的观测结果,即Mahalanobis距离。假设观察值是从与用于匹配的数据相同的分布中得出的。
- 返回:
- dist形状的nd数组(n_samples,)
观测结果的马哈拉诺比斯距离平方。
- score(X_test, y=None)[源代码]#
计算的log似然
X_test
根据高斯模型估计。高斯模型由其均值和协方差矩阵定义,分别表示为:
self.location_
和self.covariance_
.- 参数:
- X_test形状类似阵列(n_samples,n_features)
我们计算其可能性的测试数据,其中
n_samples
是样本数量和n_features
是功能的数量。X_test
假设是从与适合(包括定中心)中使用的数据相同的分布中得出的。- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- res浮子
的对数似然
X_test
与self.location_
和self.covariance_
分别作为高斯模型均值和协方差矩阵的估计量。