generated from LufsX/Experiment-LogReg
This commit is contained in:
+22
-4
@@ -31,7 +31,7 @@ name = "杨文强"
|
||||
# 1. 数据加载函数
|
||||
def load_data(filepath):
|
||||
"""
|
||||
从文件中加载数据,返回特征和标签。
|
||||
从文件中加载数据,处理缺失值 '?' 为 NaN,并将其替换为列的均值或其他方法。
|
||||
|
||||
Args:
|
||||
- filepath (str): 数据文件路径。
|
||||
@@ -40,9 +40,27 @@ def load_data(filepath):
|
||||
- np.array: 特征数据。
|
||||
- np.array: 标签数据。
|
||||
"""
|
||||
data = np.loadtxt(filepath, delimiter=' ') # 读取空格分隔的文件
|
||||
X = data[:, :-1] # 特征数据,去掉最后一列
|
||||
y = data[:, -1] # 标签数据,最后一列是标签
|
||||
# 读取数据,使用 `?` 替换为 np.nan
|
||||
data = np.genfromtxt(filepath, delimiter=' ', dtype=str) # 读取为字符串类型
|
||||
data[data == '?'] = np.nan # 将 '?' 替换为 NaN
|
||||
|
||||
# 将数据转换为浮动类型
|
||||
data = data.astype(float)
|
||||
|
||||
# 处理缺失值:用列的均值替换缺失值
|
||||
# 计算每列的均值(跳过 NaN)
|
||||
col_means = np.nanmean(data, axis=0)
|
||||
|
||||
# 用列均值填充 NaN 值
|
||||
# np.where 检查哪里是 NaN,并用对应列的均值替换
|
||||
inds = np.where(np.isnan(data))
|
||||
data[inds] = np.take(col_means, inds[1])
|
||||
|
||||
# 特征数据:去掉最后一列
|
||||
X = data[:, :-1]
|
||||
# 标签数据:最后一列是标签
|
||||
y = data[:, -1]
|
||||
|
||||
return X, y
|
||||
|
||||
# 2. 训练对率回归模型的函数
|
||||
|
||||
Reference in New Issue
Block a user