zoukankan      html  css  js  c++  java
  • scikit-learn一般实例之一:保序回归(Isotonic Regression)

    对生成的数据进行保序回归的一个实例.保序回归能在训练数据上发现一个非递减逼近函数的同时最小化均方误差。这样的模型的好处是,它不用假设任何形式的目标函数,(如线性)。为了比较,这里用一个线性回归作为参照。

    # coding:utf-8
    
    print (__doc__)
    #作者:Nelle Varoquaux <nelle.varoquaux@gmail.com>
    #     Alexandre Gramfort <alexandre.gramfort@inria.fr>
    #协议:BSD
    import numpy as np
    from matplotlib.collections import LineCollection
    from pylab import *
    
    from sklearn.linear_model import LinearRegression
    from sklearn.isotonic import IsotonicRegression
    from sklearn.utils import check_random_state
    
    n = 100
    x = np.arange(n)
    rs = check_random_state(0)
    y = rs.randint(-50,50,size=(n,))+50.*np.log(1+np.arange(n))
    
    #拟合保存回归和线性回归模型
    ir = IsotonicRegression()
    y_ = ir.fit_transform(x,y)
    
    lr = LinearRegression()
    lr.fit(x[:,np.newaxis],y) #线性回归中x需要是二维的
    
    #绘制结果
    
    segments = [[[i, y[i]], [i, y_[i]]] for i in range(n)]
    lc = LineCollection(segments, zorder=0)
    lc.set_array(np.ones(len(y)))
    lc.set_linewidths(0.5 * np.ones(n))
    
    plt.plot(x,y,"r.",markersize=12)
    plt.plot(x,y_,"g.-",markersize=12)
    plt.plot(x,lr.predict(x[:,np.newaxis]),"b-")
    plt.gca().add_collection(lc)
    
    myfont = matplotlib.font_manager.FontProperties(fname="Microsoft-Yahei-UI-Light.ttc")
    mpl.rcParams['axes.unicode_minus'] = False
    plt.legend((u"数据",u"保存拟合",u"线性拟合"),loc="lower right",prop=myfont)
    plt.title(u'保存回归',fontproperties=myfont)
    
    plt.show()
    
  • 相关阅读:
    DragDrop 注册失败的问题
    《精通.NET互操作:P/Invoke,C++ Interop和COM Interop》推荐的工具列表
    勇于探索,及时总结,拥有自信!个人工作感受总结篇……
    C#4.0新特性对.NET互操作的影响(转载)
    UCHome: IP控制
    UCHome: SQL注入式攻击
    Windows下Cygwin模拟GCC开发
    序列化和反序列化
    UCHome: 解读common.php(转)
    UCHome: 提交检查
  • 原文地址:https://www.cnblogs.com/taceywong/p/5930607.html
Copyright © 2011-2022 走看看