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

Python中Coef_.T是什么?.T属性的含义及使用目的

coef_.T 功能说明
  • .T 不是coef_的专属属性后缀,它是NumPy数组自带的转置接口,作用是对二维数组做行列互换。scikit-learn所有线性模型的coef_返回值都是NumPy数组,因此可以直接调用.T。这是NumPy的基础功能,不会出现在LogisticRegression的专属API文档里,你搜不到相关说明是找错了文档范围。
  • 这段代码里用转置的原因完全是适配matplotlib的绘图逻辑:
    1. 训练完成的LogisticRegression模型,coef_的数组形状为(分类类别数, 输入特征数):每一行对应某一个类别的线性方程系数集合,每一列对应单个特征在不同类别下的系数。即使是二分类场景,coef_也是形状为(1, 特征数)的二维数组,不是一维数组。
    2. plt.plot()接收二维数组作为绘图输入时,默认按数组的列为单位生成独立的序列线条。这段代码的目的是可视化不同正则化强度C下,每个特征对应的模型系数大小,对coef_做转置后数组形状变为(特征数, 分类类别数),刚好匹配plot的输入规则,传入后每个标记点就能准确对应单个特征的系数值,不会出现维度错位。
  • 你提供的示例代码如下:
for C, marker in zip([0.001, 1, 100], ['o', '^', 'v']):
    lr_l1 = LogisticRegression(C=C, penalty="l1").fit(X_train, y_train)
    print("Training accuracy of l1 logreg with C={:.3f}: {:.2f}".format(
        C, lr_l1.score(X_train, y_train)))
    print("Test accuracy of l1 logreg with C={:.3f}: {:.2f}".format(
        C, lr_l1.score(X_test, y_test)))
    plt.plot(lr_l1.coef_.T, marker, label="C={:.3f}".format(C))

调试时可以直接打印lr_l1.coef_.shape和lr_l1.coef_.T.shape,能直观看出转置前后的维度差异,方便理解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:17:02