You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook中LinearRegression的model.fit执行时内核挂起无报错

问题分析与解决

核心原因

  1. 语法错误:代码中dataset=pd.get_dummies(dataset,drop_first=True一行缺少闭合括号),这会导致代码执行时存在语法问题,干扰后续逻辑的正常运行。
  2. 特征维度爆炸:你对Address列做了one-hot编码,而地址属于高基数类别特征(每个地址几乎唯一),这会生成数万甚至数十万的冗余特征,导致X_train的维度急剧膨胀,LinearRegression模型拟合时需要处理超大矩阵,计算量远超常规范围,因此内核一直处于运行状态无法完成。

解决步骤

  • 修正语法错误:把dataset=pd.get_dummies(dataset,drop_first=True改为dataset=pd.get_dummies(dataset,drop_first=True)。
  • 处理高基数特征:
    • 直接移除Address列:地址对房价预测价值有限,且会带来维度灾难,修改col_to_use列表,去掉'Address'即可。
    • 或编码优化:用频数编码(统计每个地址出现的次数)、目标编码(用该地址对应的房价均值编码)替代one-hot,避免特征数量暴增。
  • 补充缺失值处理:当前仅填充了CouncilArea和Car的缺失值,BuildingArea的缺失也会影响模型,可考虑用均值、中位数填充。

修正后的示例代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

# 读取数据
dataset = pd.read_csv(r'C:\Users\USER\Downloads\melb_data.csv\melb_data.csv')
# 移除Address列,避免维度爆炸
col_to_use = ['Suburb','Rooms','Type','Price','Method','SellerG','Distance','Bedroom2','Car','Bathroom','Landsize','BuildingArea','CouncilArea','Regionname']
dataset = dataset[col_to_use]

# 填充缺失值
col_to_fill_zero = ['CouncilArea','Car']
dataset[col_to_fill_zero] = dataset[col_to_fill_zero].fillna(0)
# 补充填充BuildingArea的缺失值
dataset['BuildingArea'] = dataset['BuildingArea'].fillna(dataset['BuildingArea'].median())

# 修正语法错误,执行one-hot编码
dataset = pd.get_dummies(dataset, drop_first=True)

# 拆分特征与目标变量
X = dataset.drop('Price', axis=1)
y = dataset['Price']

# 划分训练测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=2)

# 训练模型
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)

内容的提问来源于stack exchange,提问作者Jamilu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:37:10