【问题标题】:Writing a best fit line function in Python在 Python 中编写最佳拟合线函数
【发布时间】:2017-08-24 10:28:42
【问题描述】:

我将 python 和 scikitlearn 用于线性回归和可视化目的。

我需要创建自己的函数来返回渐变和最佳拟合线 y 截距,而不是使用来自 sklearnlinear_model.LinearRegression()

m = (μ(x) * μ(y) - μ(x * y))/((μ(x))2 - μ(x2))

b = μ(y) - m * μ(x)

其中 μ 是平均函数

我正在努力在 python 中做到这一点。

任何帮助将不胜感激。

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model


diabetes = datasets.load_diabetes()



diabetes_X = diabetes.data[:, np.newaxis, 2]


diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]


diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]


regr = linear_model.LinearRegression()


regr.fit(diabetes_X_train, diabetes_y_train)


print('Coefficients: \n', regr.coef_)

print("Mean squared error: %.2f"
      % np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))

print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))


plt.scatter(diabetes_X_test,  diabetes_y_test,  color='green', label="Test")
plt.scatter(diabetes_X_train,  diabetes_y_train,  color='red', label ='Training')
plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',
     linewidth=3, label='Best fit line')

plt.xticks(())
plt.yticks(())
plt.legend()

plt.show()

【问题讨论】:

  • 你能发布你到目前为止所做的事情吗?

标签: python python-2.7 scikit-learn


【解决方案1】:

你可以使用 numpy 来计算平均值...

import numpy as np

m = (np.mean(x) * np.mean(y) − np.mean(x * y))/((np.mean(x))**2 − np.mean(x**2))
b = np.mean(y) − m * np.mean(x)

但是发送一些你已经完成的代码以获得更具体的帮助!

【讨论】:

  • 感谢我添加了代码,以便您可以在上下文中查看。我相信我需要使用 x 和 y 的训练数据,但只是不确定如何将其适应上下文。
  • 我认为这是第一个概念问题,你应该更好地理解你在做什么......你可以找到很多好的课程,比如:coursera.org/learn/machine-learning
猜你喜欢
  • 2017-10-05
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2019-05-15
  • 2017-03-31
  • 2016-02-27
相关资源
最近更新 更多