多元线性回归模型训练代码检查与优化
没有完整的代码,无法确定是否有语法错误或逻辑错误。但是,以下是可能需要注意的一些问题:
-
在打开CSV文件时,将'a'模式用作文件打开模式。这意味着您将在文件末尾追加内容,而不是覆盖原始文件。这可能会导致数据重复。如果您希望覆盖原始文件,请使用'w'模式。
-
代码似乎没有定义data变量,但是在代码中使用了data变量。您需要确保已定义和初始化data变量。
-
在循环中,area_index和area_num函数未定义。您需要确保这些函数已定义,并且返回正确的值。
-
在写入预测结果时,您正在将误差转换为整数。这可能会导致您失去小数位数,从而导致误差计算不准确。
-
您需要确保导入了所需的库,例如csv,pandas,sklearn等。
with open('E:\大数据分析学习\python学习\pycharm\经济预测源码\data122.csv', 'a', encoding='utf-8', newline='') as f:
# 特征筛选
cols = ['建筑面积', '室', '厅', '厨', '卫', '梯', '户', '东', '东北', '东南',
'北', '南', '南东', '西', '西北', '西南', '底层', '顶层',
'毛坯', '混合结构', '钢混结构', '中楼层', '简装', '精装', '有电梯', '无电梯']
# 区域
area_list = list(set(data['房屋区域'].values.tolist()))
print('北京区域列表: ')
print(area_list, '\n')
for area in area_list:
# 数据集X和标签集y
X = data[cols][area_index(area):(area_num(area) + area_index(area))]
y = data['房屋价格'][area_index(area):(area_num(area) + area_index(area))]
# 使用train_test_split进行交叉验证,划分训练集和测试集
x_train, x_test, y_train, y_test = \
train_test_split(X, y, test_size=0.2, random_state=best_state(area, X, y))
# 查看训练集和测试集形状
print(x_train.shape, y_train.shape)
print(x_test.shape, y_test.shape)
# 导入线性模型
linear = LinearRegression()
# 多元线性模型训练
model = linear.fit(x_train, y_train)
# print(model.intercept_, model.coef_)
# 模型预测
price_end = model.predict(x_test)
# 写入预测结果
csv_write = csv.writer(f)
for i in range(0, len(x_test)):
# '地区', '面积', '真实价格', '预测价格', '误差'
error = y_test.values[i] - price_end[i].astype(int)
csv_write.writerow([area, x_test['建筑面积'].values[i],
y_test.values[i], price_end[i].astype(int), error])
为了更有效地进行代码检查和优化,请提供完整的代码示例。
原文地址: https://www.cveoy.top/t/topic/owNI 著作权归作者所有。请勿转载和采集!