要计算机器学习模型的准确率,可以按照以下步骤进行:
下面是一个示例代码,展示如何计算逻辑回归模型的准确率,而不使用sklearn库:
import numpy as np
# 定义逻辑回归模型
class LogisticRegression:
def __init__(self, lr=0.01, num_iter=100000, fit_intercept=True):
self.lr = lr
self.num_iter = num_iter
self.fit_intercept = fit_intercept
def add_intercept(self, X):
intercept = np.ones((X.shape[0], 1))
return np.concatenate((intercept, X), axis=1)
def sigmoid(self, z):
return 1 / (1 + np.exp(-z))
def loss(self, h, y):
return (-y * np.log(h) - (1 - y) * np.log(1 - h)).mean()
def fit(self, X, y):
if self.fit_intercept:
X = self.add_intercept(X)
self.theta = np.zeros(X.shape[1])
for i in range(self.num_iter):
z = np.dot(X, self.theta)
h = self.sigmoid(z)
gradient = np.dot(X.T, (h - y)) / y.size
self.theta -= self.lr * gradient
def predict_prob(self, X):
if self.fit_intercept:
X = self.add_intercept(X)
return self.sigmoid(np.dot(X, self.theta))
def predict(self, X, threshold=0.5):
return self.predict_prob(X) >= threshold
# 创建一个示例数据集
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([0, 0, 1, 1])
# 实例化逻辑回归模型
model = LogisticRegression()
# 使用训练集训练模型
model.fit(X, y)
# 使用测试集预测模型的输出
y_pred = model.predict(X)
# 计算准确率
accuracy = (y_pred == y).mean()
print("准确率:", accuracy)
在上述代码中,我们首先定义了一个LogisticRegression
类来实现逻辑回归模型。然后,我们创建了一个示例数据集,并使用该数据集来训练模型。接下来,使用训练得到的模型对测试集进行预测,并计算准确率。最后,打印出准确率的值。
请注意,这只是一个简单的示例代码,仅用于说明如何计算模型的准确率。在实际应用中,可能需要进行更多的数据预处理、特征工程和模型评估等步骤。