我是靠谱客的博主 酷酷书包,最近开发中收集的这篇文章主要介绍机器学习-回归中的相关性(Correlation Coefficient)和R平方值算法皮尔逊相关系数 (Pearson Correlation Coefficient):相关举例R平方值代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
学习彭亮《深度学习基础介绍:机器学习》课程
皮尔逊相关系数 (Pearson Correlation Coefficient):
概念:衡量两个值线性相关强度的量
取值范围:
[-1, 1]: 正向相关: >0, 负向相关:<0, 无相关性:=0
计算公式:
相关
举例
计算:
R平方值
定义:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。
描述:如R平方为0.8,则表示回归关系可以解释因变量80%的变异。换句话说,如果我们能控制自变量不变,则因变量的变异程度会减少80%
计算
简单线性回归:R^2 = r * r
多元线性回归:
R平方也有其局限性
R平方随着自变量的增加会变大,R平方和样本量是有关系的。因此,我们要到R平方进行修正。修正的方法:
代码
#coding=utf-8
# @Author: yangenneng
# @Time: 2018-01-19 14:49
# @Abstract:
import numpy as np
from astropy.units import Ybarn
import math
# 计算相关系数
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
# 假设有多个自变量的相关系数
def polyfit(x, y, degree):
# 定义字典
result={}
# polyfit 自动计算回归方程:b0、b1...等系数 degree为x的几次方的线性回归方程
coeffs=np.polyfit(x,y,degree)
# 转为list存入字典
result['polynomial']=coeffs.tolist()
# poly1d 返回预测值
p=np.poly1d(coeffs)
# 给定一个x的预测值为多少
y_hat = p(x)
# 均值
ybar = np.sum(y)/len(y)
ssreg = np.sum((y_hat-ybar)**2)
sstot = np.sum((y-ybar)**2)
result['determination'] = ssreg/sstot
return result
testX = [1, 3, 8, 7, 9]
testY = [10, 12, 24, 21, 34]
print "相关系数r:",computeCorrelation(testX,testY)
print "简单线性回归r^2:",str(computeCorrelation(testX,testY)**2)
# 此处x为一维的,所以多元退化为一元,结果应该与一元一样
print "多元回归r^2:",polyfit(testX,testY,1)
最后
以上就是酷酷书包为你收集整理的机器学习-回归中的相关性(Correlation Coefficient)和R平方值算法皮尔逊相关系数 (Pearson Correlation Coefficient):相关举例R平方值代码的全部内容,希望文章能够帮你解决机器学习-回归中的相关性(Correlation Coefficient)和R平方值算法皮尔逊相关系数 (Pearson Correlation Coefficient):相关举例R平方值代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复