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

参考R语言实现 波士顿犯罪数据集Python版Lasso回归求助

波士顿犯罪数据集Lasso回归Python实现指南

前置依赖

你需要提前安装以下Python库:

  • numpy
  • pandas
  • scikit-learn
  • matplotlib(可选,用于绘制正则路径匹配可视化输出)

完整实现代码

1. 导入依赖与加载数据集

Lasso对特征尺度敏感,默认和R的glmnet实现逻辑一致,需要先做特征标准化:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import Lasso, LassoCV
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.datasets import fetch_openml

# 加载波士顿犯罪数据集
boston = fetch_openml(name="boston", version=1, parser="auto")
X = boston.data
y = boston.target

# 特征标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

2. 交叉验证选择最优正则参数

sklearn中Lasso的alpha参数对应R实现中的lambda参数,用10折交叉验证自动选最优值:

# 10折交叉验证选最优正则参数
lasso_cv = LassoCV(cv=10, random_state=42, max_iter=10000)
lasso_cv.fit(X_scaled, y)
print(f"最优正则参数alpha:{lasso_cv.alpha_:.4f}")

如果原R代码指定了固定的lambda序列,可以传入alphas参数对齐数值,就能得到完全一致的筛选结果。

3. 训练最优模型并输出系数

系数为0的特征即为被Lasso自动筛选掉的特征,输出规则和原R实现一致:

# 训练最终模型
lasso_best = Lasso(alpha=lasso_cv.alpha_, max_iter=10000)
lasso_best.fit(X_scaled, y)

# 输出非零系数的特征
coef_df = pd.DataFrame({
    "特征名": X.columns,
    "系数": lasso_best.coef_
})
print("筛选后的有效特征及系数:")
print(coef_df[coef_df["系数"] != 0].sort_values(by="系数", ascending=False).round(4))
print(f"模型截距项:{lasso_best.intercept_:.4f}")

# 输出模型效果指标
y_pred = lasso_best.predict(X_scaled)
print(f"训练集R²:{r2_score(y, y_pred):.4f}")
print(f"训练集均方误差:{mean_squared_error(y, y_pred):.4f}")

4. 绘制正则路径(匹配可视化输出)

如果原输出包含正则系数变化路径,可以用以下代码生成完全一致的图:

# 生成不同alpha下的系数变化路径
alphas = np.logspace(-4, 1, 100)
coefs = []
for a in alphas:
    lasso = Lasso(alpha=a, max_iter=10000)
    lasso.fit(X_scaled, y)
    coefs.append(lasso.coef_)

plt.figure(figsize=(10,6))
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale('log')
plt.xlabel('Alpha (对应R中的Lambda)')
plt.ylabel('特征系数')
plt.title('Lasso正则系数路径')
plt.axvline(lasso_cv.alpha_, color='r', linestyle='--', label='最优正则参数')
plt.legend()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:45:02