zoukankan      html  css  js  c++  java
  • sklearn—LinearRegression,Ridge,RidgeCV,Lasso线性回归模型简单使用

    线性回归

    import sklearn
    from sklearn.linear_model import LinearRegression X= [[0, 0], [1, 2], [2, 4
    ]] y = [0, 1, 2] clf = LinearRegression()
    #fit_intercept=True
    #默认值为 True,表示计算随机变量, False 表示不计算随机变量
    #normalize=False
    #默认值为 False,表示在回归前是否对回归因子 X 进行归一化, True 表示是 #copy_X=True 表示是否保存副本
    # n_jobs=1 在运行时几核并行运算 clf.fit(X, y) #训练 print(clf.coef_) #获取训练会的线性函数X参数的权值 print(clf.intercept_) # 训练后模型截距 print(clf.predict([[3,3]])) #根据输出值进行预测 print(clf._decision_function([[3,3]]))#根据输入进行预测的第二种方法 print(clf.score([[3,3]],[1.79])) #对预测结果进行评估打分 print(clf.get_params())#获取本次训练模型的参数值 print(clf.set_params(normalize=True)) #修改模型的参数值 print(clf.get_params())#重新显示模型训练参数值

    Ridge 回归 (岭回归)

    Ridge 回归用于解决两类问题:一是样本少于变量个数,二是变量间存在共线性

    from sklearn import linear_model
    reg = linear_model.Ridge (alpha = .5) #导入模型并传入一个数
    reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) #训练模型
    #Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
    #      normalize=False, random_state=None, solver='auto', tol=0.001)
    print(reg.coef_) #获取权重w1...wn
    
    print(reg.intercept_) #获取截距w0
    
    reg.set_params(alpha=0.6)#重新设置参数alpha=0.6
    #Ridge(alpha=0.6, copy_X=True, fit_intercept=True, max_iter=None,
    #   normalize=False, random_state=None, solver='auto', tol=0.001)
       #tol收敛精度
    reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])#重新训练模型
    #Ridge(alpha=0.6, copy_X=True, fit_intercept=True, max_iter=None,
    #   normalize=False, random_state=None, solver='auto', tol=0.001)
    print(reg.coef_)
    print(reg.intercept_)

    RidgeCV:多个阿尔法,得出多个对应最佳的w,然后得到最佳的w及对应的阿尔法

    from sklearn import linear_model #导入模型
    reg = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])#导入模型传入数组
    reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) #训练模型
    #RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,normalize=False)
    print(reg.alpha_) #获取权重

    Lasso 监督分类
    估计稀疏系数的线性模型
    适用于参数少的情况,因其产生稀疏矩阵,可用与特征提取

    from sklearn import linear_model # 导入模型参数
    reg = linear_model.Lasso(alpha = 0.1)#导入模型传入参数alpha=0.1
    reg.fit([[0, 0], [1, 1]], [0, 1])#训练数据
    #Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,normalize=False, positive=False, precompute=False, random_state=None,selection='cyclic', tol=0.0001, warm_start=False)
    #max_iter:迭代次数,tol:收敛精度
    print(reg.predict([[1, 1]]))#模型预测

    sklearn中更多的回归问题

      Elastic Net
        
    是一个使用 L1 L2 训练的线性模型,适合于在参数很少的情况下(如 Lasso)并保持 Ridge
        性能的情况, 既是多种影响因素依赖与另外一种因素。继承 Ridge
    的旋转稳定性。

      Multi-task Lasso
        用于估计 y 值不是一元的回归问题
        用于估计联合多元回归问题的稀疏系数, y 是一个 2 维矩阵(n_samples,n_tasks)。对于所
        有的回归问题,选的的因素必须相同,也叫 tasks
        使用: clf = linear_model.MultiTaskLasso(alpha=0.1)
      贝叶斯回归(Bayesian Regression
        
    可以再估计过程包含正则化参数,参数可以手动设置,用于估计概率回归问题
        优点:
          适用于手边数据
          可用于在估计过程中包含正规化参数
        缺点:
          耗时

      逻辑回归
        可以做概率预测,也可用于分类
        仅能用于线性问题
        通过计算真实值与预测值的概率,然后变换成损失函数,求损失函数最小值来计算模型参数
        从而得出模型
        使用:
          clf_l1_LR = LogisticRegression(C=C, penalty='l1', tol=0.01)
          clf_l2_LR = LogisticRegression(C=C, penalty='l2', tol=0.01)
          clf_l1_LR.fit(X, y)
          clf_l2_LR.fit(X, y)
    想了解更多sklearn内容,请访问https://wenku.baidu.com/view/b5e9383c1a37f111f0855b0f.html

     

     

  • 相关阅读:
    Winget
    全部所学知识
    重装系统
    srs更改端口号导致webrtc播放异常
    .NET性能优化方面的总结(转)
    从自动变换页面背景CSS改写成变换背景图
    网页级在线性能网站测试介绍
    ASP.NET服务器端控件学习(一)
    Nginx源码分析内存池
    使用Memcached提高.NET应用程序的性能
  • 原文地址:https://www.cnblogs.com/crawer-1/p/8548312.html
Copyright © 2011-2022 走看看