gpt4 book ai didi

python - Seaborn 分布图 "numpy.linalg.LinAlgError: singular matrix"

转载 作者:行者123 更新时间:2023-12-01 06:36:29 26 4
gpt4 key购买 nike

我正在使用 Pycharm 运行机器学习界面代码。 SVM 算法不断使我的界面崩溃,并出现以下错误:

line 1220, in pushButton_8_handlerax1 = sns.distplot(Y_predict)
line 979, in invraise LinAlgError("singular matrix")
numpy.linalg.LinAlgError: singular matrix

代码如下。

from sklearn import model_selection
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.preprocessing import LabelEncoder
from sklearn import tree
from sklearn.metrics import accuracy_score
import pickle
from PIL import Image
import numpy as np
import seaborn as sns


def plot_distribution(inp):
plt.figure()
ax = sns.distplot(inp)
plt.axvline(np.mean(inp), color="k", linestyle="dashed", linewidth=5)
_, max_ = plt.ylim()
plt.text(
inp.mean() + inp.mean() / 10,
max_ - max_ / 10,
"Mean: {:.2f}".format(inp.mean()),
)
return plt.figure

print(np.mean(Y_test))
print(np.mean(Y_predict))

# ________________________Dist Predict Vs. Test and Means value_________________________
plt.figure(figsize=(9, 5))
o = np.mean(Y_test)
tt = np.mean(Y_train)
ax1 = sns.distplot(Y_predict)
ax2 = sns.distplot(Y_test)
RR1 = ('Mean:', tt)
RR2 = ('Mean:', o)
plt.axvline(np.mean(Y_predict), color='b', linestyle='dashed', linewidth=5, label=RR1)
plt.axvline(np.mean(Y_test), color='orange', linestyle='dashed', linewidth=5, label=RR2)
plt.legend()
plt.savefig('DecisionTreeClassifier2.png')

基本上,错误位于 ax1 = sns.distplot(Y_predict)

我希望我能够解释这个问题。

谢谢

最佳答案

可以在此处找到类似错误的讨论:https://github.com/mwaskom/seaborn/issues/1502但是,在您的情况下,您似乎使用的是旧版本的 seaborn

在最新版本的 seaborn 中,不会出现此错误(引用: https://github.com/mwaskom/seaborn/pull/1823 )。

<小时/>

错误说明

您收到此错误是因为 distplot 函数具有默认输入参数 kde=True ,这会导致观察到的错误。 Y_predict 似乎是离散的,且 bin 大小较大。平均 k 最近距离为 0(对于不太大的 k),这会影响 KDE 的内核宽度估计。

关于python - Seaborn 分布图 "numpy.linalg.LinAlgError: singular matrix",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59645668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com