【问题标题】:Logistic regression for non-categorical data prediction非分类数据预测的逻辑回归
【发布时间】:2021-09-28 23:32:04
【问题描述】:

众所周知,逻辑回归广泛用于使用分类变量的分类问题。我开始探索是否可以对数值变量应用逻辑回归!

例如,假设我有一个数据框 (df),其中包括来自风力涡轮机的四个变量 (>3000 个数据集),如下所示

     t                 wind speed  pressure   power_output  
2012-03-01 00:00:00        7.5      900.12       788.1564
2012-03-01 00:00:10        8.5      900.86       991.8323
2012-03-01 00:00:20        5.6      900.72       985.0856
2012-03-01 00:00:30        8.9      900.29       879.3877
2012-03-01 00:00:40        10.1     900.58       1118.800

这里我的目标变量是power_output。基于其他变量,我想预测power_output。这可以通过logistic regression 实现吗?

值得注意的是,power_outputwind speed 之间的关系几乎类似于 S 形函数。

我已经编写了代码,但它没有使用continious 标签。并收到此错误ValueError: Unknown label type: 'continuous'

df=pd.read_csv('data.csv').dropna()
df.head()

X=pd.iloc[:,[0,2]].values
y=pd.iloc[:,3].values      # power_output

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=0)

from sklearn.preprocessing import StandardScaler
sc= StandardScaler()
X_train=sc.fit_transform(X_train)
X_test=sc.fit_transform(X_test)

from sklearn.linear_model import LogisticRegression
classifier=LogisticRegression(random_state=0)
classifier.fit(X_train,y_train)

y_pred=classifier.predict(X_test)

【问题讨论】:

  • 不,不,不。 线性回归,或“连续”回归。
  • 数据是非线性的,因此不能使用线性回归。
  • 您可以在“线性”回归中使用非线性项,以说明给定数据生成过程的非线性。

标签: python regression logistic-regression


【解决方案1】:

我认为逻辑回归在这里不是正确的方法。问题是逻辑回归决定了标签的概率。 power_output 是一个数字,你有无限数量的标签。

我认为更好的方法是使用Regressor,它近似于连续 X 和 Y 值之间的函数。

我会尝试AdaBoostRegressor from sklearn,它在统计上确定了要逼近的最佳函数。您不必更改太多,因为它来自同一个库 (sklearn)。

或者,您可以使用LinearRegression 并转换您的数据(例如使用PolynominalFeatures),以逼近一些维数高于线性的函数。

【讨论】:

  • 是的。我知道。但只是看看有没有办法通过后勤解决这个问题。你能举一些“回归者”的例子吗?
  • 是的,我编辑了 anwser。我会尝试 AdaBoostRegressor,因为它非常简单并且可以为您提供良好的结果。
  • 我会调查的。
【解决方案2】:

风力涡轮机的密度、风速和功率输出之间的物理关系是已知的:P = p * v^3 * Cp 密度(与压力直接相关),v 风速(高达cut-out speed ) 和C 一个风力涡轮机相关常数因子。

真的,你只需要适应因子 C,这可以通过 scipy's curve fit 完成。

【讨论】:

    【解决方案3】:

    逻辑回归有 99% 的时间用于预测二元结果。 我们可以引用泰坦尼克号作为最著名的例子:根据每位乘客的数据,您可以尝试确定他们是否幸存(即活着或死亡(因此是二元结果))。 对我来说,如果您尝试根据其他参数预测值,您应该尝试使用另一种算法,但既不能使用线性算法也不能使用逻辑回归。 也许您可以尝试使用 scikit-learn 模块的随机森林回归器,但我不太确定它是如何工作的。

    编辑:当我说二元结果时,它也可以算作两个类之间的分类

    【讨论】:

      猜你喜欢
      • 2021-11-24
      • 1970-01-01
      • 2021-04-30
      • 2020-06-26
      • 1970-01-01
      • 2019-03-05
      • 2019-06-07
      • 1970-01-01
      • 2021-01-03
      相关资源
      最近更新 更多