一元线性回归算法和sigmoid函数

                              **机器学习基础**

一元线性回归算法

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函数_第1张图片
一元线性回归算法和sigmoid函数_第2张图片

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()

对于代码的解释

  1. np.exp(x):求e的x次方
    np.sqrt(x):求x的开方
  2. x=np.linspace(0, 60000, 1000):将0-60000分成1000份
    而文中plot_x = np.linspace(-10, 10, 100),就是将-10-10分成100份
  3. 对于plt.plot()函数
    详见知乎这位博主
  4. 对于x=np.linspace、plt.xlim和xticks的区别
    详见这位博主

你可能感兴趣的:(机器学习,算法)