如何解决Matplotlib-Scipy / Sklearn交互-scipy.linalg._flapack
我在matplotlib和scipy之间的交互方面遇到一些问题。 这是我对情况的理解:
- 错误在于
LinearRegression
的{{1}}抛出sklearn
- 经过一些调试后,
SVD not converging error
引发了错误,其中scipy\linalg\basic.py
方法返回的信息值不同于dgesld
(在这种情况下为0
)。在我的情况下,使用的-4
是fortran flatpacklapack_func
。 - 错误似乎取决于输入的数字和
dgesld
(pyplot
)代码,尤其是方法matplotlib
,yticks
。 - 该错误首先发生在多线性回归问题中(
xticks
中的信息值等于23,在这种情况下为正值),但我编写了以下脚本来更好地概述问题
scipy\linalg\basic.py
在具有以下功能的Windows 10计算机上运行时:
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
a = [0.27236845,0.79433854,0.05986454,0.62736383,0.5732594,0.54175392,0.92359127,0.19913404,0.17357701,0.10225879,0.94727807,0.23766063,0.92438574,0.10981865,0.18669187,0.71337215,0.17843819,0.98693265,0.80787247,0.931572]
b = [1.68869178,2.20448291,1.64828788,1.95276497,1.23976119,1.61260175,1.32652345,1.94535222,1.37353248,1.47830833,1.08400723,1.91091901,1.63909271,2.37494003,1.64490261,1.90403079,1.81028796,1.66986048,1.65304452,1.60747378]
for no_plot in [True,False]:
for i in range(len(a)-1):
_a = a[:i + 2]
_b = b[:i + 2]
if not no_plot:
bar_color = "blue"
margin = 10
y_label = x_label = None
angle = 0
title = "TestError"
color_theme = (0 / 235,32 / 235,96 / 235)
fig,ax = plt.subplots(figsize=(18,6.8))
plt.bar(_a,_b,color=bar_color)
box = ax.get_position()
ax.set_position([box.x0,box.y0 + margin * box.height,box.width,box.height * (1 - margin)])
plt.xticks(fontname="Cambria",color=color_theme,rotation=angle,fontsize=25)
plt.yticks(fontname="Cambria",fontsize=25)
plt.title(title,fontname="Cambria",fontsize=25)
ax_output = plt.gca()
try:
reg = LinearRegression().fit(np.array(_a).reshape(-1,1),_b)
print("Success: {},@ i={} with no_plot={}".format(reg.score(np.array(_a).reshape(-1,_b),i,no_plot))
except Exception as e:
print("Exception: {} @ i={} with no_plot={}".format(repr(e),no_plot))
和python version: 3.7.9
scipy version: 1.5.2
scikit-learn version: 0.23.2
numpy version: 1.19.2
matplotlib version: 3.3.2
结果如下:
_flapack.cp37-win_amd64
就堆栈跟踪而言:
Success: 1.0,@ i=0 with no_plot=True
Success: 0.9524690407545247,@ i=1 with no_plot=True
Success: 0.9248909415334777,@ i=2 with no_plot=True
Success: 0.17921330631542143,@ i=3 with no_plot=True
Success: 0.1559357435898613,@ i=4 with no_plot=True
Success: 0.001129573837944875,@ i=5 with no_plot=True
Success: 0.008667658302087822,@ i=6 with no_plot=True
Success: 0.001674117195053615,@ i=7 with no_plot=True
Success: 0.011802146118754298,@ i=8 with no_plot=True
Success: 0.024141340568111902,@ i=9 with no_plot=True
Success: 0.04144995409093344,@ i=10 with no_plot=True
Success: 0.03301917468171267,@ i=11 with no_plot=True
Success: 0.0959782634092683,@ i=12 with no_plot=True
Success: 0.08847483030078473,@ i=13 with no_plot=True
Success: 0.06428117850391502,@ i=14 with no_plot=True
Success: 0.07033033186821203,@ i=15 with no_plot=True
Success: 0.06394158828230323,@ i=16 with no_plot=True
Success: 0.0640239869160919,@ i=17 with no_plot=True
Success: 0.06734590831873866,@ i=18 with no_plot=True
Success: 1.0,@ i=0 with no_plot=False
Success: 0.9524690407545247,@ i=1 with no_plot=False
Success: 0.9248909415334777,@ i=2 with no_plot=False
Success: 0.17921330631542143,@ i=3 with no_plot=False
Success: 0.1559357435898613,@ i=4 with no_plot=False
Success: 0.001129573837944875,@ i=5 with no_plot=False
Success: 0.008667658302087822,@ i=6 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=7 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=8 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=9 with no_plot=False<
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=10 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=11 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=12 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=13 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=14 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=15 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=16 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=17 with no_plot=False
Exception: ValueError('illegal value in 4-th argument of internal None') @ i=18 with no_plot=False
坦白说,我有点迷路了。有人对此事有想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。