ML之MLiR:输入两个向量,得出两个向量之间的相关度

简介: ML之MLiR:输入两个向量,得出两个向量之间的相关度

输出结果

image.png


实现代码

import numpy as np

from astropy.units import Ybarn

import math  

from statsmodels.graphics.tukeyplot import results

def computeCorrelation(X, Y):

   xBar = np.mean(X)

   yBar = np.mean(Y)

   SSR = 0          

   varX = 0

   varY = 0

   for i in range(0 , len(X)):  

       diffXXBar = X[i] - xBar  

       diffYYBar = Y[i] - yBar

       SSR += (diffXXBar * diffYYBar)

       varX +=  diffXXBar**2    

       varY += diffYYBar**2

 

   SST = math.sqrt(varX * varY)

   return SSR / SST

testX = [1, 3, 8, 7, 9]

testY = [10, 12, 24, 21, 34]

print ("r:",computeCorrelation(testX, testY))    

def polyfit(x,y,degree):

   results={}

 

   coeffs =np.polyfit(x,y,degree)  

   results['polynomial'] = coeffs.tolist()  

   p=np.poly1d(coeffs)                    

   yhat=p(x)                            

   ybar=np.sum(y)/len(y)                

   ssreg=np.sum((yhat-ybar)**2)      

   sstot=np.sum((y-ybar)**2)

   results['determination']=ssreg/sstot

 

   return results

print (polyfit(testX, testY, 1)["determination"])    


相关文章
|
4月前
7.处理多维特征的输入
7.处理多维特征的输入
|
5月前
|
自然语言处理 Python
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)
665 0
|
5月前
|
算法
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
使用PyTorch处理多维特征输入的完美指南
使用PyTorch处理多维特征输入的完美指南
使用PyTorch处理多维特征输入的完美指南
|
存储 算法 PyTorch
pytorch 给定概率分布的张量,如何利用这个概率进行重复\不重复采样?
在 PyTorch 中,可以使用 torch.distributions.Categorical 来基于给定的概率分布进行采样。
863 0
|
机器学习/深度学习
深度学习核对矩阵的维数对w权重矩阵的维数的计算
深度学习核对矩阵的维数对w权重矩阵的维数的计算
119 0
|
机器学习/深度学习 PyTorch 算法框架/工具
使用Pytorch处理多维特征的输入
下图这个预测一个人在一年之后得糖尿病的概率的例子,这个时候我们的输入将会有很多的指标。你可以把它看成是我们体检的各种值。最后一排的外代表了他是否会得糖尿病。
168 0
|
大数据 iOS开发 Python
Python 按分类权重(区间)随机获取分类样本
Python 按分类权重(区间)随机获取分类样本
81 0
|
PyTorch 算法框架/工具
torch 如何实现两点分布采样,要求采100个样本,其中20个样本为数字1,80个为数字2
可以使用 PyTorch 中的 torch.distributions 模块实现两点分布采样。具体来说,可以使用 Categorical 分布将数字1和数字2的概率分别设为0.2和0.8,然后调用 sample() 方法进行采样。可以先使用 torch.ones() 和 torch.zeros() 函数生成分别包含20个数字1和80个数字2的张量,然后使用 torch.cat() 函数将它们拼接在一起,再使用 torch.randperm() 函数对其进行打乱。
322 0
下一篇
无影云桌面