diff --git a/function.py b/function.py index bceba38..512ed4d 100644 --- a/function.py +++ b/function.py @@ -78,14 +78,26 @@ def load_data(filepath): """ data = [] labels = [] + columns = [] with open(filepath, 'r') as f: lines = f.readlines() for line in lines: line = line.strip().split() - line_data = [1] + [float(i) for i in line[:-1]] + if not columns: + columns = line[:-1] + line_data = [1] + [float(x) if x!= '?' else 0 for x in line[:-1]] data.append(line_data) labels.append(int(line[-1])) - return np.array(data), np.array(labels) + + data = np.array(data) + for i in range(1, data.shape[1]): + col = data[:, i] + valid_values = col[col!= 0] + if len(valid_values) > 0: + mean_value = np.mean(valid_values) + data[col == 0, i] = mean_value + + return data, np.array(labels) if __name__ == "__main__": # 以下代码可用于测试,可自行随意修改