为了账号安全,请及时绑定邮箱和手机立即绑定

为什么没有打印行并且估计系数为 NaN?

为什么没有打印行并且估计系数为 NaN?

阿波罗的战车 2021-12-21 16:39:18
代码使用 将数据集导入代码numpy.genfromtxt,然后尝试通过散点图绘制回归线。然而,散点图打印而线不打印。还有估计系数输出NaN。问题出在哪里?import numpy as np import matplotlib.pyplot as plt from numpy import genfromtxtdef estimate_coef(x, y):     # number of observations/points     n = np.size(x)     # mean of x and y vector     m_x, m_y = np.mean(x), np.mean(y)     # calculating cross-deviation and deviation about x     SS_xy = np.sum(y*x) - n*m_y*m_x     SS_xx = np.sum(x*x) - n*m_x*m_x     # calculating regression coefficients     b_1 = SS_xy / SS_xx     b_0 = m_y - b_1*m_x     return(b_0, b_1) def plot_regression_line(x, y, b):     # plotting the actual points as scatter plot     plt.scatter(x, y, color = "m",                marker = "o", s = 30)     # predicted response vector     y_pred = b[0] + b[1]*x     # plotting the regression line     plt.plot(x, y_pred, color = "g")     # putting labels     plt.xlabel('x')     plt.ylabel('y')     # function to show plot     plt.show() def main():     # observations     x = genfromtxt('/Users/divyanshuvarma/Downloads/graduate-admissions/Admission_Predict.csv', delimiter=',',usecols=(1))    y = genfromtxt('/Users/divyanshuvarma/Downloads/graduate-admissions/Admission_Predict.csv', delimiter=',',usecols=(8))    # estimating coefficients     b = estimate_coef(x, y)     print("Estimated coefficients:\nb_0 = {}  \          \nb_1 = {}".format(b[0], b[1]))     # plotting regression line     plot_regression_line(x, y, b) if __name__ == "__main__":     main() 
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

问题出在 csv 文件上。Numpy.genfromtxt 还读取了 csv 文件的第一行,其中包含后续行中的值的名称(标签)。所以我使用 skip_header=1 来阻止它读取字符串值。


查看完整回答
反对 回复 2021-12-21
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

有一个部门b_1 = SS_xy / SS_xx的功能estimate_coef。你打印出值SS_xx,也许它是零?希望有帮助。


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信