栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Python和Numpy计算r平方?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Python和Numpy计算r平方?

从numpy.polyfit文档中,它适合线性回归。具体来说,度为’d’的numpy.polyfit与均值函数拟合线性回归

E(y | x)= p_d * x d + p_ {d-1} * x (d-1)+ … + p_1 * x + p_0

因此,您只需要计算该拟合的R平方即可。线性回归的维基百科页面提供了完整的详细信息。您对R
^ 2感兴趣,可以用几种方法来计算,最容易的可能是

SST = Sum(i=1..n) (y_i - y_bar)^2SSReg = Sum(i=1..n) (y_ihat - y_bar)^2Rsquared = SSReg/SST

我将“ y_bar”用作y的均值,并将“ y_ihat”作为每个点的拟合值。

我对numpy并不十分熟悉(我通常在R中工作),因此可能有一种更简洁的方法来计算R平方,但是以下应该是正确的

import numpy# Polynomial Regressiondef polyfit(x, y, degree):    results = {}    coeffs = numpy.polyfit(x, y, degree)     # Polynomial Coefficients    results['polynomial'] = coeffs.tolist()    # r-squared    p = numpy.poly1d(coeffs)    # fit values, and mean    yhat = p(x)   # or [p(z) for z in x]    ybar = numpy.sum(y)/len(y)          # or sum(y)/len(y)    ssreg = numpy.sum((yhat-ybar)**2)   # or sum([ (yihat - ybar)**2 for yihat in yhat])    sstot = numpy.sum((y - ybar)**2)    # or sum([ (yi - ybar)**2 for yi in y])    results['determination'] = ssreg / sstot    return results


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617558.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号