generated from LufsX/Experiment-LogReg
This commit is contained in:
+34
@@ -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}")
|
||||
Reference in New Issue
Block a user