Ada*_*dav 6 python python-3.x scikit-learn logistic-regression
我正在使用mord(scikitlearn)库进行有序(即多项式)岭回归。
y 是包含1到19的整数值的单列。
X 由7个数值变量组成,这些数值变量存储在4个存储桶中,并被赋值为最终的28个二进制变量。
import pandas as pd
import numpy as np
from sklearn import metrics
from sklearn.model_selection import train_test_split
import mord
in_X, out_X, in_y, out_y = train_test_split(X, y,
stratify=y,
test_size=0.3,
random_state=42)
mul_lr = mord.OrdinalRidge(alpha=1.0,
fit_intercept=True,
normalize=False,
copy_X=True,
max_iter=None,
tol=0.001,
solver='auto').fit(in_X, in_y)
Run Code Online (Sandbox Code Playgroud)
mul_lr.coef_返回[28 x 1]数组,但mul_lr.intercept_返回单个值(而不是19)。
知道我缺少什么吗?
如果您希望模型对所有19个类别进行预测,则需要y在训练模型之前先将标签转换为一种热门编码。
from sklearn.preprocessing import OneHotEncoder
y-=1 # range from 1 to 19 -> range from 0 to 18
enc = OneHotEncoder(n_values=19)
y = enc.fit_transform(y).toarray()
"""
train a model
"""
Run Code Online (Sandbox Code Playgroud)
现在mul_lr.intercept_.shape应该是(19,)。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |