**机器学习基础**
一元线性回归算法
1. 介绍
一元线性回归分析预测法,是根据自变量x和因变量y的相关关系,建立x与y的线性回归方程进行预测的方法。由于市场现象一般是受多种因素的影响,而并不是仅仅受一个因素的影响。所以应用一元线性回归分析预测法,必须对影响市场现象的多种因素做全面分析。只有当诸多的影响因素中,确实存在一个对因变量影响作用明显高于其他因素的变量,才能将它作为自变量,应用一元相关回归分析市场预测法进行预测 。
一元线性回归分析法的预测模型:
xt代表t期自变量的值;
代表t期因变量的值;
a、b代表一元线性回归方程的参数。
a、b参数由下列公式求得(用代表):
2. Python来实现一元线性回归的算法:
代码里都有注释,我就不进行详细解释了
import numpy as np
import matplotlib.pyplot as plt
"""
函数说明:一元线性回归算法
Parameters:
denominator 分母
numerator 分子
"""
if __name__=='__main__':
x = np.array([1,2,4,6,8])
y = np.array([2,5,7,8,9])
x_mean = np.mean(x)
y_mean = np.mean(y)
#分子
numerator = 0.0
#分母
denominator = 0.0
#求出一元线性回归公式的各个参数
#对于zip()函数:把x,y依次打包成一个元组,便于绘制散点图
for x_i,y_i in zip(x, y):
numerator += (x_i - x_mean) * (y_i - y_mean)
denominator += (x_i - x_mean) ** 2
a = numerator/denominator
b = y_mean - a * x_mean
y_predict = a * x + b
#画出训练集的散点图
plt.scatter(x, y, color='r')
#画出预测的拟合直线
plt.plot(x,y_predict,color='r')
plt.xlabel('管子的长度', fontproperties='simHei', fontsize=15)
plt.ylabel('收费', fontproperties='simHei', fontsize=15)
plt.show()
既然我们已经通过Python实现了一元回归算法,那下一步就是测试新的数据了
x_test = 7
Predictvalue = a * x_test + b
print(Predictvalue)
plt.show()
sigmoid函数
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
y = 1.0 / ( 1.0 + np.exp(-x))
return y
#X=np.linspace(0, 60000, 1000)
#这句话的意思就是讲0-60000分成1000份
plot_x = np.linspace(-10, 10, 100)
plot_y = sigmoid(plot_x)
plt.plot(plot_x, plot_y)
plt.show()
对于代码的解释
- np.exp(x):求e的x次方
np.sqrt(x):求x的开方 - x=np.linspace(0, 60000, 1000):将0-60000分成1000份
而文中plot_x = np.linspace(-10, 10, 100),就是将-10-10分成100份 - 对于plt.plot()函数
详见知乎这位博主 - 对于x=np.linspace、plt.xlim和xticks的区别
详见这位博主