zoukankan      html  css  js  c++  java
  • 线性回归(python实现)

    数据集:

    [D=lbrace (x_1,y_1),(x_2,y_2),...,(x_m,y_m) brace ]

    其中:

    [x_i = (x_{i1};x_{i2};...;x_{id}) ]

    单属性,二分类

    分类面:

    [f(x)= omega x + b ]

    最小均方差求(omega \, b)

    [min sum_{i=1}^m (f(x_i)-y_i)^2 ]

    解得:

    [omega = frac{sum_{i=1}^m y_i(x_i- hat x)}{sum_{i=1}^m x^2 - frac 1m sum_{i=1}^m(x_i)^2} ]

    [b= frac 1m sum_{i=1}^m(y_i - omega x_i) ]

    python程序

    import numpy as np 
    import matplotlib.pyplot as plt 
    N = 50
    X = np.random.rand(N)
    Y = np.random.rand(N)
    #print(X)
    plt.scatter(X, Y, alpha=0.6)#散点图绘制
    
    #求omiga
    xg = 0.0 #x均值
    xf = 0.0 #x平方
    for i in X:
        xg += i
        xf += i**2
    xg /= N
    omiga_m = 0.0
    for i in range(N):
        omiga_m += Y[i]*(X[i] - xg)
    omiga_d = xf - (N*xg)**2/N
    omiga = omiga_m/omiga_d
    
    #求偏移b
    b_temp = 0.0
    for i in range(N):
        b_temp += Y[i] - omiga*X[i]
    b = b_temp/N
    
    x_linear = np.linspace(0, 1, num=50)
    y_linear = [omiga*i + b for i in x_linear]
    plt.plot(x_linear, y_linear, color = 'red')
    
    plt.show()
    

    效果

    坚持
  • 相关阅读:
    币值转换
    抓老鼠啊~亏了还是赚了?
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    第五周实验报告和总结
    第四次实验报告及总结
  • 原文地址:https://www.cnblogs.com/liudianfengmang/p/12785094.html
Copyright © 2011-2022 走看看