ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)

目录

利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)

输出结果

实现代码


利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)

输出结果

实现代码

#ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)import numpy as np
import matplotlib.pyplot as plt
from minepy import MINEdef mysubplot(x, y, numRows, numCols, plotNum,xlim=(-4, 4), ylim=(-4, 4)):r = np.around(np.corrcoef(x, y)[0, 1], 1)mine = MINE(alpha=0.6, c=15)mine.compute_score(x, y)mic = np.around(mine.mic(), 1)ax = plt.subplot(numRows, numCols, plotNum,xlim=xlim, ylim=ylim)ax.set_title('Pearson r=%.1f\nMIC=%.1f' % (r, mic),fontsize=10)ax.set_frame_on(False)ax.axes.get_xaxis().set_visible(False)ax.axes.get_yaxis().set_visible(False)ax.plot(x, y, ',')ax.set_xticks([])ax.set_yticks([])return axdef rotation(xy, t):return np.dot(xy, [[np.cos(t), -np.sin(t)],[np.sin(t), np.cos(t)]])def mvnormal(n=1000):cors = [1.0, 0.8, 0.4, 0.0, -0.4, -0.8, -1.0]for i, cor in enumerate(cors):cov = [[1, cor],[cor, 1]]xy = np.random.multivariate_normal([0, 0], cov, n)mysubplot(xy[:, 0], xy[:, 1], 3, 7, i+1)def rotnormal(n=1000):ts = [0, np.pi/12, np.pi/6, np.pi/4, np.pi/2-np.pi/6,np.pi/2-np.pi/12, np.pi/2]cov = [[1, 1],[1, 1]]xy = np.random.multivariate_normal([0, 0], cov, n)for i, t in enumerate(ts):xy_r = rotation(xy, t)mysubplot(xy_r[:, 0], xy_r[:, 1], 3, 7, i+8)def others(n=1000):x = np.random.uniform(-1, 1, n)y = 4*(x**2-0.5)**2 + np.random.uniform(-1, 1, n)/3mysubplot(x, y, 3, 7, 15, (-1, 1), (-1/3, 1+1/3))y = np.random.uniform(-1, 1, n)xy = np.concatenate((x.reshape(-1, 1), y.reshape(-1, 1)), axis=1)xy = rotation(xy, -np.pi/8)lim = np.sqrt(2+np.sqrt(2)) / np.sqrt(2)mysubplot(xy[:, 0], xy[:, 1], 3, 7, 16, (-lim, lim), (-lim, lim))xy = rotation(xy, -np.pi/8)lim = np.sqrt(2)mysubplot(xy[:, 0], xy[:, 1], 3, 7, 17, (-lim, lim), (-lim, lim))y = 2*x**2 + np.random.uniform(-1, 1, n)mysubplot(x, y, 3, 7, 18, (-1, 1), (-1, 3))y = (x**2 + np.random.uniform(0, 0.5, n)) * \np.array([-1, 1])[np.random.random_integers(0, 1, size=n)]mysubplot(x, y, 3, 7, 19, (-1.5, 1.5), (-1.5, 1.5))y = np.cos(x * np.pi) + np.random.uniform(0, 1/8, n)x = np.sin(x * np.pi) + np.random.uniform(0, 1/8, n)mysubplot(x, y, 3, 7, 20, (-1.5, 1.5), (-1.5, 1.5))xy1 = np.random.multivariate_normal([3, 3], [[1, 0], [0, 1]], int(n/4))xy2 = np.random.multivariate_normal([-3, 3], [[1, 0], [0, 1]], int(n/4))xy3 = np.random.multivariate_normal([-3, -3], [[1, 0], [0, 1]], int(n/4))xy4 = np.random.multivariate_normal([3, -3], [[1, 0], [0, 1]], int(n/4))xy = np.concatenate((xy1, xy2, xy3, xy4), axis=0)mysubplot(xy[:, 0], xy[:, 1], 3, 7, 21, (-7, 7), (-7, 7))plt.figure(facecolor='white')
mvnormal(n=800)
rotnormal(n=200)
others(n=800)
plt.tight_layout()plt.suptitle('Understand the difference of correlation index (Pearson VS MIC)')
plt.show()

ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)相关推荐

  1. Matplotlib 绘制折线图 - 正余弦函数图像

    运行环境 : python 3.6.0 用 Matplotlib 的 scatter 方法绘制散点图 核心代码 : # -*- encoding: utf-8 -*- # @Version : Pyt ...

  2. 【matplotlib库】利用matplotlib库绘制正余弦函数曲线的python程序,标注X、Y轴及标题|CSDN创作打卡

    使用python中的第三方库matplotlib绘制正余弦函数图形,并标注x,y轴以及标题等 ,绘制方法与matlab类似,可以说这里的matplotlib库便是Python中的matlab 程序代码 ...

  3. 正余弦函数的matlab仿真,实现正余弦信号的算法比较

    实现正余弦函数的几种算法记录 1.几种算法的理论推导与matlab仿真 (1)Taylor级数逼近正余弦函数的推导 精度要求为20bit,其对应误差为9.536e-7,所以泰勒函数逼近的误差值要小于9 ...

  4. C语言正余弦函数定点查表算法原理及实现

    如果用数学库中的sin和cos函数计算,可能涉及浮点.乘法.除法运算,运行速率较低.这里介绍一种正余弦查表算法. 参考代码:SMT32 FOC电机库的mc_math.c. 首先我们知道正弦和余弦的函数 ...

  5. 正余弦函数及其反函数导数推导

    正余弦函数及其反函数导数推导 背景 三角函数的求导涉及到重要极限 limx→0sinxx\lim_{x\to0}\frac{sin x}{x} 的使用. 其反三角函数涉及复合函数求导.此文主要是对这两 ...

  6. 正余弦函数图像python

    实验内容 1.题目 正余弦函数图像. 2.实验代码 import numpy as np import matplotlib.pylab as pl import matplotlib.font_ma ...

  7. python绘制条形图用什么函数_Python绘制正余弦函数图像完整代码

    通过python绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来学习如何进行对图表的一些元素的进行调整. 01. 简单绘图 mat ...

  8. python基础教程:Python绘制正余弦函数图像的方法

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 今天打算通过绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来 ...

  9. 怎么用python画sin函数图像_Python绘制正余弦函数图像的方法

    今天打算通过绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来学习如何进行对图表的一些元素的进行调整. 01. 简单绘图 matpl ...

最新文章

  1. python 正则表达式 前瞻_正则表达式 For Python
  2. Struts2.34必需具备的包
  3. 51单片机——My-Clock项目
  4. salt return mysql_mysql中储存salt返回结果
  5. iOS_9_scrollView分页
  6. .NET 之 ORM 性能评测
  7. app engine_Google App Engine:在您自己的域中托管应用程序
  8. JS中undefined和null的区别,以及出现原因
  9. seqlist插入java_大话数据结构(五)(java程序)——顺序存储结构的插入与删除...
  10. 学习ecshop 教程网址
  11. 用MDT 2012为企业部署windows 7(七)--创建标准操作系统部署任务序列
  12. android自定义view流程,Android 自定义View--从源码理解View的绘制流程
  13. 智慧城市php源码,智慧城市本地O2O系统NIUCMS商业版V3.4完整源码
  14. php生成中国标准时间,中国时间标准
  15. MongoDB启动shutting down with code:100处理
  16. 人脸识别技术介绍和表情识别最新研究
  17. C语言--数据溢出导致的缓冲区(堆栈)损坏
  18. 联发科 MTK6765 八核安卓核心板主板定制方案
  19. centos安装jq
  20. 【物联网硬件安全】二、固件分析-固件提取

热门文章

  1. Android短信验证
  2. 安装brew提示/usr/local/bin is not in your PATH.
  3. python中接口测试垃圾数据如何清理_一个六年经验的python后端是怎么学习用java写API的(2)Extracter,微信文章抓取清洗入库...
  4. merge sort loser tree
  5. 简明docker教程 1
  6. 《应用时间序列分析:R软件陪同》——2.3 随机游走
  7. wine清除软件残余图标
  8. android Hander Service 广播的综合使用案例
  9. 一个高效的定时任务系统
  10. 运维如何逆袭?月薪30K的牛逼运维需要的知识,全在这里了