From fcb50d0d206f2956e8be3665fb5e52ae5a64c2e1 Mon Sep 17 00:00:00 2001 From: wzy <675163717@qq.com> Date: Thu, 31 Oct 2024 17:19:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/function.py b/function.py index be4bf3f..8d51b11 100644 --- a/function.py +++ b/function.py @@ -1,6 +1,7 @@ # function.py import numpy as np import random +import pandas as pd """ 实验说明: @@ -27,8 +28,8 @@ name = "万子玉" # 这里写自己的代码实现 -def sigmoid(z): - return 1 / (1 + np.exp(-z)) +def sigmoid(inx): + return 1 / (1 + np.exp(-inx)) def train_logreg(X, y, learning_rate=0.001, iterations=500, batch_size=16, initial_weights=None): X = np.insert(X, 0, 1, axis=1) # 添加偏置项 @@ -140,6 +141,22 @@ def load_data(filepath): y = [row[-1] for row in data] return np.array(X), np.array(y) + + data = pd.read_csv(filepath, header=None, delimiter=' ') + return data + +# 标准化函数 +def regularize(xMat): + inMat = xMat.copy() + inMeans = np.mean(inMat, axis=0) + inVar = np.std(inMat, axis=0) + inMat = (inMat - inMeans) / inVar + return inMat + +def classify(inx, weights): + p = sigmoid(np.dot(inx, weights)) + return 1 if p >= 0.5 else 0 + """ 从文件中加载数据,若不自行正确实现,则无法通过评测,**不记录成绩**。