更新 function.py
Gitea Actions Experiment Test / Experiment-Actions (push) Successful in 31s

This commit is contained in:
2024-11-10 15:51:39 +08:00
parent 0a2ec7f39c
commit fecc4d0387
+34
View File
@@ -105,6 +105,30 @@ def accuracy(X, y, weights):
predictions = predict_logreg(X, weights)
return np.mean(predictions == y)
def loadDataSet(filename='dataSet.txt'):
dataList = []
labelList = []
fr = open(filename)
for line in fr.readlines():
lineList = line.strip().split()
# 修改前
dataList.append([1.0, float(lineList[0]), float(lineList[1])])
# 修改后
# dataList.append([float(lineList[0]), float(lineList[1])])
labelList.append(int(lineList[2]))
return dataList, labelList
# 假设这里有一个简单的线性回归模型训练和评估的函数
def trainAndEvaluate(dataList, labelList):
# 这里只是一个简单的示例,实际中可能需要使用更复杂的模型和评估方法
import numpy as np
X = np.array(dataList)
y = np.array(labelList)
w = np.linalg.inv(X.T @ X) @ X.T @ y
predictions = X @ w
error = np.mean((predictions - y)**2)
return error
if __name__ == "__main__":
X_train, y_train = load_data("./horse-colic.data")
X_test, y_test = load_data("./horse-colic.test")
@@ -121,3 +145,13 @@ if __name__ == "__main__":
final_accuracy = accuracy(X_test, y_test, final_weights)
print(f"最终测试集的准确率: {final_accuracy:.4f}")
# 读取原始数据
dataList1, labelList1 = loadDataSet()
error1 = trainAndEvaluate(dataList1, labelList1)
# 修改代码后读取数据
dataList2, labelList2 = loadDataSet()
error2 = trainAndEvaluate(dataList2, labelList2)
print(f"有常数项时的误差:{error1}")
print(f"无常数项时的误差:{error2}")