zoukankan      html  css  js  c++  java
  • Sklearn库例子4:分类——Lasso分类例子

    Lasso回归:

    #-*- encoding:utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.metrics import r2_score
    
    np.random.seed(42)
    n_samples,n_features=50,200
    X=np.random.randn(n_samples,n_features)
    coef=3*np.random.randn(n_features)
    inds=np.arange(n_features)
    np.random.shuffle(inds)
    coef[inds[10:]]=0
    y=np.dot(X,coef)
    
    ##添加噪音:
    y+=0.01*np.random.normal((n_samples,))
    ####分离数据:
    n_samples=X.shape[0]
    X_train,y_train=X[:int(n_samples/2)],y[:int(n_samples/2)]
    X_test,y_test=X[int(n_samples/2):],y[int(n_samples/2):]
    
    ###Lasso
    from sklearn.linear_model import Lasso
    
    alpha=0.1
    lasso=Lasso(alpha=alpha)
    y_pred_lasso=lasso.fit(X_train,y_train).predict(X_test)
    r2_score_lasso=r2_score(y_test,y_pred_lasso)
    print(lasso)
    print('r^2 on test data:%f' %r2_score_lasso)
    
    
    from sklearn.linear_model import ElasticNet
    enet=ElasticNet(alpha=alpha,l1_ratio=0.7)
    y_pred_enet=enet.fit(X_train,y_train).predict(X_test)
    r2_score_enet=r2_score(y_test,y_pred_enet)
    print(enet)
    print('r^2 on test data:%f' %r2_score_enet)
    
    plt.plot(enet.coef_,label='Elastic net coefficients')
    plt.plot(lasso.coef_,label='Lasso coefficients')
    plt.plot(coef,'--',label='orginal coefficients' )
    plt.legend(loc='best')
    plt.title('Lasso R^2:%f,Elastic Net R^2:%f' %(r2_score_lasso,r2_score_enet))
    plt.show()
    

     输出:

    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)
    r^2 on test data:0.384710
    ElasticNet(alpha=0.1, copy_X=True, fit_intercept=True, l1_ratio=0.7,
          max_iter=1000, normalize=False, positive=False, precompute=False,
          random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
    r^2 on test data:0.240176

  • 相关阅读:
    C#学习笔记之——矩形覆盖问题
    链表,栈,队列代码
    链表练习代码
    2012年全国计算机专业大学排名
    寄存器介绍
    win8 wifi开关显示关闭,且设置里面wifi开关显示灰色的解决办法
    360随身wifi无法使用临时解决方案大全
    锐捷客户端的校园网电脑如何转化成无线路由
    未完成数据结构题目
    数据结构代码1
  • 原文地址:https://www.cnblogs.com/itdyb/p/5845563.html
Copyright © 2011-2022 走看看