线性回归是机器学习中的基础算法之一,属于监督学习中的回归问题,算法的关键在于如何最小化代价函数,通常使用梯度下降或者正规方程(最小二乘法),在这里对算法原理不过多赘述,建议看吴恩达发布在斯坦福大学上的课程进行入门学习。
这里主要使用python的sklearn实现一个简单的单变量线性回归。
sklearn对机器学习方法封装的十分好,基本使用fit,predict,score,来训练,预测,评价模型,
一个简单的事例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from pandas import dataframe
from pandas import dataframe
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets,linear_model
x = []
y = []
with open ( "c:\\users\\www\\ex1data1.txt" , "r" ) as f: #读取txt文件。
for line in f:
p_tmp, e_tmp = [ float (i) for i in line.split( ',' )]
x.append(p_tmp)
y.append(e_tmp)
#'data=np.loadtxt('ex1data1.txt',delimiter=',')
|
1
|
# x=data[0]
|
1
|
# y=data[1]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
data = dataframe(x,columns = { 'a' })
data[ 'b' ] = b
x = dataframe(x)
fig = plt.figure()
ax1 = fig.add_subplot( 1 , 1 , 1 )
plt.scatter(data[ 'a' ],data[ 'b' ]) #显示x,y的散点图
def linear_model_main(x,y,predict_value): #定义一个使用线性回归的函数
regr = linear_model.linearregression()
regr.fit(x,y) #训练模型
predict_output = regr.predict(predict_value) #预测
predictions = {} #用一个集合装以下元素
predictions[ 'intercept' ] = regr.intercept_ #截距
predictions[ 'codfficient' ] = regr.coef_ #斜率(参数)
predictions[ 'predict_value' ] = predict_output #预测值
return predictions
result = linear_model_main(x,y, 1500 ) #调用函数
print (result[ 'predict_value' ])
def show_predict(x,y):
regr = linear_model.linearregression()
regr.fit(x,y)
plt.scatter(x,y,color = 'blue' )
plt.plot(x,regr.predict(x),color = 'red' )
show_predict(x,y)
|
最后拟合结果如图:
以上这篇python实现简单的单变量线性回归方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xckkcxxck/article/details/70158004