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