Gadzan

AI课程笔记(四)

线性回归模型函数代价函数线性的含义从模型函数到目标函数梯度下降法求解目标函数 利用线性函数对一个或多个自变量(x1,x2,x3...xk)和因变量(y)之间的关系进行拟合的模型线性回归模型一阶(或更低阶)多项式,或零多项式f(x) = a + bx (a、b 为常数,且b!=0)一阶多项式或者 f(x) = c (c 为常数,且 c!=0)零阶多项式或者 f(x) = 0零多项式线性函数只有一个自变量 线性函数有多个独立自变量线性函数y = a + bx斜率、导数和偏微分导数函数 f(x) 在 x 轴上某一点x0处,沿着 x 轴正方向的变化率/变化趋势偏导数某一点处沿某一维度坐标轴正方向的变化率微分是一个函数,原函数上各点沿着(偏)导数方向的变化当我们求出了一个函数的(偏)微分函数后,将某个变量带入其中,得出的(偏)微分函数对应的函数值,就是原函数在该点处,对该自变量求导的导数值。常用规则常数的导数是零x 的 n 次幂的导数是 n 倍的 x 的 n-1 次幂对常数乘以函数求导,结果等于该常数乘以函数的导数两个函数 f 和 g 的和的导数为:(f+g)' = f' + g'两个函数 f 和 g 的积的导数为:(fg)' = f'g + fg'过程看博客

编写线性回归训练/预测程序

import matplotlib.pyplot as plt
    import numpy as np
    from sklearn import datasets, linear_model
    from sklearn.metrics import mean_squared_error, r2_score

    experiences = np.array([0,1,2,3,4,5,6,7,8,9,10])
    salaries = np.array([103100, 104900, 106800, 108700, 110400, 112300, 114200, 116100, 117800, 119700, 121600])

    # 将特征数据集分为训练集和测试集,除了最后 4 个作为测试用例,其他都用于训练
    X_train = experiences[:7]
    X_train = X_train.reshape(-1,1)
    X_test = experiences[7:]
    X_test = X_test.reshape(-1,1)

    # 把目标数据(特征对应的真实值)也分为训练集和测试集
    y_train = salaries[:7]
    y_test = salaries[7:]

    # 创建线性回归模型
    regr = linear_model.LinearRegression()

    # 用训练集训练模型——看就这么简单,一行搞定训练过程
    regr.fit(X_train, y_train)

    # 用训练得出的模型进行预测
    diabetes_y_pred = regr.predict(X_test)

    # 将测试结果以图标的方式显示出来
    plt.scatter(X_test, y_test,  color='black')
    plt.plot(X_test, diabetes_y_pred, color='blue', linewidth=3)

    plt.xticks(())
    plt.yticks(())

    plt.show()

知识共享许可协议 本作品采用知识共享署名 4.0 国际许可协议进行许可。

评论

评论加载中...