当前IT行业虚拟化比较流行,使用这种方式,找到合适的判断参数,就可以使用此算法使资源得到最大程度的合理利用。

 保序回归:一种可以使资源利用率最大化的算法(保序回归pava法) 保序回归 资源 算法 第1张

1.数学界说

保序回归是回归算法的一种,基本思想是:给定一个有限的实数调集,练习一个模型来最小化下列方程:

 保序回归:一种可以使资源利用率最大化的算法(保序回归pava法) 保序回归 资源 算法 第2张

而且满意下列约束条件:

 保序回归:一种可以使资源利用率最大化的算法(保序回归pava法) 保序回归 资源 算法 第3张

2.算法进程阐明

从该序列的首元素往后调查,一旦呈现乱序现象中止该轮调查,从该乱序元素开端逐一吸收元素组成一个序列,直到该序列避实就虚元素的均匀值小于或等于下一个待吸收的元素。

举例:

原始序列:<9, 10, 14>

成果序列:<9, 10, 14>

剖析:从9往后调查,到***的元素14都未发现乱序情况,不必处理。

原始序列:<9, 14, 10>

成果序列:<9, 12, 12>

剖析:从9往后调查,调查到14时发生乱序(14>10),中止该轮调查转入吸收元素处理,吸收元素10后子序列为<14, 10>,取该序列避实就虚元素的均匀值得12,故用序列<12, 12>代替<14, 10>。吸收10后现已到了***的元素,处理操作完结。

原始序列:<14, 9, 10, 15>

成果序列:<11, 11, 11, 15>

剖析:从14往后调查,调查到9时发生乱序(14>9),中止该轮调查转入吸收元素处理,吸收元素9后子序列为<14,9>。求该序列避实就虚元素的均匀值得12.5,因为12.5大于下个待吸收的元素10,所以再吸收10,得序列<14, 9, 10>。求该序列避实就虚元素的均匀值得11,因为11小于下个待吸收的元素15,所以中止吸收操作,用序列<11, 11, 11>代替<14, 9, 10>。

3.举例阐明下面试验的原理

以某种药物的运用量为比如:

假定药物运用量为数组X=0,1,2,3,4….99,患者对药物的反响量为Y=y1,y2,y3…..y99 ,而因为个别的原因,Y不是一个单调函数(即:存在动摇),假如咱们依照药物反响排序,对应的X就会成为乱序,失去了研讨的含义。而咱们的研讨的意图是为了调查跟着药物运用量的递加,患者的均匀反响情况。在这种情况下,运用保序回归,即不改动X的摆放次序,又求的Y的均匀值情况。如下图所示:

 保序回归:一种可以使资源利用率最大化的算法(保序回归pava法) 保序回归 资源 算法 第4张

从图中能够看出,最长的绿线x的取值约是30到60,在这个区间内,Y的均匀值相同,那么从经济及患者抗药性等要素考虑,运用药量为30个单位是最理想的。

当时IT职业虚拟化比较盛行,运用这种方法,找到适宜的判别参数,就能够运用此算法使资源得到***程度的合理使用。

4.试验代码

  1. importnumpyasnp
  2. importmatplotlib.pyplotasplt
  3. frommatplotlib.collectionsimportLineCollection
  4. fromsklearn.isotonicimportIsotonicRegression
  5. fromsklearn.utilsimportcheck_random_state
  6. n=100
  7. ##发生一个0-99的列表
  8. x=np.arange(n)
  9. ##实例化一个np.random.RandomState的实例,作用是每次取的随机值相同
  10. rs=check_random_state(0)
  11. ##randint(-50,50):发生-50到50之间的整数
  12. ##np.log求以e为低的对数
  13. y=rs.randint(-50,50,size=(n,))+50.*np.log(1+np.arange(n))
  14. ##设置保序回归函数
  15. ir=IsotonicRegression()
  16. ##练习数据
  17. y_=ir.fit_transform(x,y)
  18. ##绘图
  19. segments=[[[i,y[i]],[i,y_[i]]]foriinrange(n)]
  20. ##plt.gca().add_collection(lc),这两步便是画点与均匀直线的连线
  21. lc=LineCollection(segments)
  22. fig=plt.figure()
  23. plt.plot(x,y,'r.',markersize=12)
  24. plt.plot(x,y_,'g.-',markersize=12)
  25. plt.gca().add_collection(lc)
  26. plt.legend(('Data','IsotonicFit'),loc='lowerright')
  27. plt.title('Isotonicregression')
  28. plt.show()
转载请说明出处
知优网 » 保序回归:一种可以使资源利用率最大化的算法(保序回归pava法)

发表评论

您需要后才能发表评论