BC *_*ith 6 floating-point machine-learning python-3.x pandas scikit-learn
在我的数据集中,很少有数据(即1.4619664882428694e+258)大于float32最大值(3.4028235e+38)。现在在拟合模型期间,我收到以下错误:
Input contains NaN, infinity or a value too large for dtype('float32').
Run Code Online (Sandbox Code Playgroud)
我试过下面的代码:
df_features = pd.read_csv('data\df_features.csv')
df_target = pd.read_csv('data\df_target.csv')
X_train, X_test, y_train, y_test = train_test_split(df_features, df_target, test_size=.25, random_state=0)
model = AdaBoostRegressor()
try:
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
acc = r2_score(y_test, y_pred)
print(acc)
except Exception as error:
print(error)
Run Code Online (Sandbox Code Playgroud)
如果我想使用真实数据而不进行规范化,我该如何解决这个问题?是否有任何选项,以便我可以将 sklearn 的默认数据类型设置为 float64。如果是,那么如何?
这是一个数值精度问题。目前没有解决方案。数字是巨大的
我可以使用这个复制:
import numpy as np
from sklearn.ensemble import AdaBoostRegressor
X = np.repeat([1.4619664882428694e+258],100)
X = X.reshape(10,10)
y = np.ones((10,1))
model = AdaBoostRegressor()
model.fit(X,y)
Run Code Online (Sandbox Code Playgroud)
ValueError:输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。
np.all(np.isfinite(X))
True
Run Code Online (Sandbox Code Playgroud)
我在这里提出了一个请求: https: //github.com/scikit-learn/scikit-learn/issues/15628
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |