scikit-learn一般实例之一:保序回归(Isotonic Regression)

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

673170-20161004155034895-981269424.png

# 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()

转载于:https://www.cnblogs.com/taceywong/p/5930607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值