美文网首页程序员
【机器学习实践】有监督学习:线性分类、回归模型

【机器学习实践】有监督学习:线性分类、回归模型

作者: 不给自己画饼 | 来源:发表于2021-01-13 18:56 被阅读0次

    线性模型

    y=f(x_1,x_2,x_3...x_n)
    f为线性模型

    分类和回归的区别

    分类:y离散
    回归:y连续
    本文主要关注线性回归模型

    常用线性回归模型类型

    OLS(最小二乘法)

    通过最小化 真值和预测值之间 的差 的平方和 找到超参数w_1,w_2,w_3...
    或者用公式表示为
    argmin(\Sigma(\hat y - y)^2)

    岭(Ridge)回归

    在最小二乘法的基础上增加了一个回归目标函数的项,这个项用于克服最小二乘法回归中高维度产生的过拟合问题
    目标函数用公式表示为
    argmin(\Sigma(\hat y - y)^2+\alpha\Sigma w^2)

    Lasso回归

    在岭回归模型中常常得到不重要参数为接近0的很小的数的情况,而不是直接让这些参数置0以直接简化模型,因此使用绝对值代替平方对加项进行优化,得到Lasso回归模型
    目标函数用公式表示为
    argmin(\Sigma(\hat y - y)^2+\alpha\Sigma |w|)

    线性回归模型的代码实现

    使用sklearn库进行实现的线性回归模型

    # To add a new cell, type '# %%'
    # To add a new markdown cell, type '# %% [markdown]'
    # %%
    import sklearn
    import numpy as np
    from sklearn import linear_model
    
    
    # %%
    X = np.array([[0, 1], [3, -2], [2, 3]])
    y = np.array([0.5, 0.3, 0.9])
    
    
    # %%
    linear_reg = linear_model.LinearRegression()
    
    
    # %%
    linear_reg.fit(X, y)
    
    
    # %%
    print(linear_reg.intercept_, linear_reg.coef_)
    # 0.36666666666666675 [0.06666667 0.13333333]
    
    # %%
    print(linear_reg.predict(np.array([[1,2]])))
    # [0.7]
    
    
    

    其他回归模型包括Ridge回归和Lasso回归可直接使用scipy的模型

    from sklearn.linear_model import Ridge
    
    from sklearn.linear_model import Lasso
    

    直接进行拟合即可
    scipy中还有其他的线性回归器如下图所示


    scipy中的线性回归器

    如想使用编程语言对最小二乘法线性回归手动实现,可参考:《数值分析》中 线性回归:最小二乘法 章节

    相关文章

      网友评论

        本文标题:【机器学习实践】有监督学习:线性分类、回归模型

        本文链接:https://www.haomeiwen.com/subject/igyuaktx.html