没有完整的代码,无法确定是否有语法错误或逻辑错误。但是,以下是可能需要注意的一些问题:

  1. 在打开CSV文件时,将'a'模式用作文件打开模式。这意味着您将在文件末尾追加内容,而不是覆盖原始文件。这可能会导致数据重复。如果您希望覆盖原始文件,请使用'w'模式。

  2. 代码似乎没有定义data变量,但是在代码中使用了data变量。您需要确保已定义和初始化data变量。

  3. 在循环中,area_index和area_num函数未定义。您需要确保这些函数已定义,并且返回正确的值。

  4. 在写入预测结果时,您正在将误差转换为整数。这可能会导致您失去小数位数,从而导致误差计算不准确。

  5. 您需要确保导入了所需的库,例如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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录