文件内容如下:
文件中为体重X,身高Y的线性回归关系
from sklearn import linear_model #表示,可以调用sklearn中的linear_model模块进行线性回归。
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
data = np.loadtxt(open("D:mytest.csv","rb"),delimiter=",",skiprows=0)
data1=data[0:20]
以上data1=data[0:20] 表示我们导入文件数据的前20行,举一反三,导入200、2000行数据则可以在这里进行修改,如下
1)、导入200行数据
data1=data[0:200]
2)、导入2000行数据
data1=data[0:2000]
x=[example[1] for example in data1]
y=[example[2] for example in data1]
X = np.asarray(x).reshape(-1, 1)
Y = np.asarray(y).reshape(-1, 1)
1)、上面,X、Y表示将导入的数据的第1列、第二列分别赋值给X、Y,如下所示:
2)、上面的x、y是将数据列表装换为array数组方便sklearn库进行数据解析
model = linear_model.LinearRegression()
model.fit(X,Y)
b=model.intercept_[0] #截距
a=model.coef_[0]#线性模型的系数
a1=a[0]
以上的数据处理不需要我们去管,是第三方库sklearn写好了的,我们直接拿来用就ok
print("y=",a1,"x+",b)
y1 = a1*X + b
plt.scatter(X,Y)
plt.plot(x,y1,c='r')
以上就是运用sklearn库来进行一元线性方程的回归分析,过程比较简单,基本就是运用第三方的库,唯一难点是解决文件导入,然后赋值!
from sklearn import linear_model #表示,可以调用sklearn中的linear_model模块进行线性回归。
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
data = np.loadtxt(open("D:mytest.csv","rb"),delimiter=",",skiprows=0)
data1=data[0:20]
x=[example[1] for example in data1]
y=[example[2] for example in data1]
X = np.asarray(x).reshape(-1, 1)
Y = np.asarray(y).reshape(-1, 1)
model = linear_model.LinearRegression()
model.fit(X,Y)
b=model.intercept_[0] #截距
a=model.coef_[0]#线性模型的系数
a1=a[0]
print("y=",a1,"x+",b)
y1 = a1*X + b
plt.scatter(X,Y)
plt.plot(x,y1,c='r')
可以看出,python拟合出来的线性回归和我们excel拟合的线性回归的方程,大致一样,就是有效数字的问题,可以看出,我们编写的代码还是比较完美的!
1)、取值200个x
对比excel:
2)、取值2000个x
对比excel:
以上就是我们本次博客的全部内容,希望通过本次博客,大家可以更好的理解如何运用第三方库sklearn求线性回归方程哦!
遇到问题的小伙伴评论区留言哦,学长给你们耐心解答!
陈一月的又一天编程岁月^ _ ^