【发布时间】:2018-12-05 05:10:30
【问题描述】:
我想使用逻辑回归从 Excel 数据集中预测和绘制 curve 并获取其斜率系数。但是,当我运行代码(见下文)时,会出现错误“ValueError: Unknown label type: 'continuous'.”。
我在类似的问题中读到 y 值应该是 'int' 类型,但我不想转换它,因为 y 数字介于 1.66 和 0.44 之间......
这种情况是否有解决方案,或者我应该尝试其他回归模型吗?
提前非常感谢
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
import seaborn as sns
from sklearn.linear_model import LogisticRegression
df = pd.read_excel('Fatigue2.xlsx',sheet_name='Sheet4')
X = df[['Strain1', 'Temperature1']]
y = df['Cycles1']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=101)
#poly = PolynomialFeatures(degree=2)
#X_ = poly.fit_transform(X_train)
LR = LogisticRegression()
LR.fit(X_train,y_train)
g = sns.lmplot(x='Cycles1', y='Strain1', hue = 'Temperature1', data=df, fit_reg= False)
g.set(xscale='log', yscale ='log')
g.set_axis_labels("Cycles (log N)", "Strain")
print ('Coefficients : ', LR.coef_, 'Intercept :', LR.intercept_)
关于数据,我在 Excel 表中总共有 97 个值:
Cycles1 Strain1 Temperature1
27631 1.66 650
... ... 650
6496220 0.44 650
【问题讨论】:
-
逻辑回归用于预测离散的标签或类别。您所描述的内容(检索斜率、从 ... 到 ... 的数值)听起来更像是线性回归案例。
-
感谢您的解释。事实上,它使用线性回归,但它只返回一个系数,我需要更高的精度。那么我将尝试使用多项式回归。
-
您的
PolynomialFeatures预处理器应该能够为您构建线性回归的多项式。甚至可能有一些用于组合功能的预处理器。顺便提一句。系数的数量应等于您放入模型的特征数量。 -
'顺便说一句。系数的数量应该等于您放入模式的特征数量',我不明白:据我了解,我在 PolynomialFeature 中放入的度数正在影响系数的数量,例如度数 = 2 - > ['1', 'x', 'y', 'x^2', 'x y', 'y^2']。正确的?你到底是什么意思?
-
sry 我指的是没有多项式特征的线性情况。对于多项式情况,它应该是特征数乘以度数(如果您使用常数进行估计,则为 +1)
标签: python logistic-regression