Python 数据类型';浮动128';不明白
我对我的垃圾邮件和火腿模型使用了LR,它在exp中显示溢出。所以我决定将Y作为float64中的float128值。 它将“TypeError:数据类型'float128'不可理解”作为错误 我正在windows机器上使用Jupyter笔记本。 更改数据类型的代码为Python 数据类型';浮动128';不明白,python,numpy,Python,Numpy,我对我的垃圾邮件和火腿模型使用了LR,它在exp中显示溢出。所以我决定将Y作为float64中的float128值。 它将“TypeError:数据类型'float128'不可理解”作为错误 我正在windows机器上使用Jupyter笔记本。 更改数据类型的代码为 y = y.astype('float128') print(y) 我的LR型号的代码是 import numpy as np class LR: def sigmoid(self,z):
y = y.astype('float128')
print(y)
我的LR型号的代码是
import numpy as np
class LR:
def sigmoid(self,z):
return 1 / (1 + np.exp(-z))
def add_intercept(self, X):
intercept = np.ones((X.shape[0], 1))
return np.concatenate((intercept, X), axis=1)
def loss_func(self,X, y, weights):
m =len(X)
yhat = sigmoid(np.dot(X, weights))
predict_1 = y * np.log(yhat)
predict_0 = (1 - y) * np.log(1 - yhat)
return -sum(predict_1 + predict_0) / m
def fit(self,X,y,epochs=25,learning_rate=0.05):
loss = []
X = self.add_intercept(X)
weights = np.random.rand(X.shape[1])
N = len(X)
for _ in range(epochs):
z = np.dot(X,weights)
y_hat = sigmoid(z)
weights -= learning_rate * (X.T @ (y_hat-y))/N
loss.append(self.loss_func(X,y,weights))
self.weights = weights
self.loss = loss
print(weights)
def predict(self, X):
X = self.add_intercept(X)
z = np.dot(X, self.weights)
#Binary result
return [1 if i > 0.5 else 0 for i in self.sigmoid(z)]
Numpy尚不支持
float128
类型。事实上,Numpy只支持本机浮点类型,而大多数平台不支持128位浮点精度。如果您不选择使用高于64位浮点的精度,则可以使用双精度(有关详细信息,请参阅)。或者,您可以使用慢速十进制Python包