如何在Python中进行多元回归分析?

时间:2018-06-19 08:43:47

标签: python tensorflow regression

我使用以下假设运行以下简单代码:

A值和B值彼此相似,并且通过组合多个变量使B值等于A值。

所以我的假设是这样的

A = W1(重量)* B + W2(重量)C(anotehr varables)+ ...

这是我的试用代码

hypothesis = tf.sigmoid(tf.matmul(X1, W1)+tf.matmul(X2, W2)+tf.matmul(X3, W3)+tf.matmul(X4, W4) + tf.matmul(X5, W5) + b1)


cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))
train = tf.train.GradientDescentOptimizer(learning_rate=0.000000000000000001).minimize(cost)

predicted = tf.cast(hypothesis > 0.5, dtype=tf.float32)
accuracy = tf.reduce_mean(tf.cast(tf.equal(predicted, Y), dtype=tf.float32))

with tf.Session() as sess:
   # Initialize TensorFlow variables
   sess.run(tf.global_variables_initializer())
   for step in range(5000):
       sess.run(y, feed_dict={X1:ct, X2: temperature, X3:humidity, X4: windspeed, X5:tideheight, Y:sst})

但是,当我验证此代码的值时,我想出了一个根本不适合的值。

当我查看数据集时,它似乎不是线性的。

如果你能给我一个这方面的例子,我将不胜感激。

我的数据集:

 A         B             C              D         E       F
25.6    27.29999    24.4752741667   71.5801495  6.468   97.1
25.6    27.5    24.3449186667   71.1314193333   5.39    288.3
25.4    27.60001    24.4019961667   71.8209758333   6.076   103.7
25.5    27.5    24.3473485  71.3570816667   6.762   95.3
25.5    27.5    24.3420308333   71.9577738333   5.978   103.7
25.6    27.29999    24.464413   71.993804   6.37    105.8
25.6    27.29999    24.3999401667   71.5558695  6.664   100.2
                           ...

1 个答案:

答案 0 :(得分:1)

我不确定神经网络是否是这类问题的正确选择。我建议用线性回归来解决它。我宁愿开始熟悉 scikit-learn library 及其用于监督学习的算法。 http://scikit-learn.org/stable/supervised_learning.html#supervised-learning pandas https://pandas.pydata.org/,便于数据预处理。 在您对这些库稍微熟悉之后,请尝试遵循以下策略:

  1. 进行数据集预处理(即删除nans,不必要 列,扩展您的功能)
  2. 将数据集拆分为培训 和测试部件。
  3. 尝试运行几个线性模型(即 LinearRegression,Ridge),尝试改进验证方案 (KFold,StratifiedKFold)
  4. 选择适当的指标以验证模型
  5. Scikit学习文档应该全部     必要的信息。祝你好运