plt.loglog(shrinkageFactor,
negative_logliks,
"m--"
,
label
=
"Negative log-likelihood"
)
plt.plot(plt.xlim(),
2
*
[logRealLikelihood],
"b-."
,
label
=
"Real Covariance Likelihood"
)
maxLikelihood
=
np.amax(negative_logliks)
minLikelihood
=
np.amin(negative_logliks)
min_y
=
minLikelihood
-
7.0
*
np.log((plt.ylim()[
1
]
-
plt.ylim()[
0
]))
max_y
=
maxLikelihood
+
16.0
*
np.log(maxLikelihood
-
minLikelihood)
min_x
=
shrinkageFactor[
0
]
max_x
=
shrinkageFactor[
-
1
]
plt.vlines(
ledoitWolf.shrinkage_,
min_y,
-
logLikelihoodLedoitWolf,
color
=
"cyan"
,
linewidth
=
3
,
label
=
"Ledoit-Wolf Estimate"
,
)
plt.vlines(
oas.shrinkage_,
min_y,
-
logLikelihoodOAS,
color
=
"green"
,
linewidth
=
3
,
label
=
"OAS Estimate"
)
plt.vlines(
cv.best_estimator_.shrinkage, min_y,
-
cv.best_estimator_.score(X_test),
color
=
"yellow"
,
linewidth
=
3
,
label
=
"Cross-validation Best estimatation"
,
)
plt.title(
"Regularized Covariance: Likelihood & Shrinkage Coefficient"
)
plt.xlabel(
"Regularization parameter: Shrinkage coefficient"
)
plt.ylabel(
"Error calculation in negative log-likelihood on test-data"
)
plt.ylim(min_y, max_y)
plt.xlim(min_x, max_x)
plt.legend()
plt.show()