aMOJOJDS 2019-07-14 12:52
浏览 1830

python 统计 回归残差对拟合值图疑问

画图时 看到书上加了plt.plot(reg.predict(X),np.ones(len(y)))
将np.ones(len(y))这段删了以后拟合值图的区域和形状都不一样了,请问这句话是做什么用呢?
我将np.ones(len(y))换为np.zeros(len(y)),区别就是横线处于0,
为什么书上要设置 为 1的横线呢?
不太明白,请大家帮我看看~

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import scipy.stats as stats

w=pd.read_csv("Concrete_Data.csv")
wn=w.columns
print(wn)



#各个变量散点图
f=plt.figure(figsize=(16,8))

k=0
for i in range(len(wn)):
    for j in range(len(wn)):
        k=k+1
        if i!=j:
            f.add_subplot(len(wn),len(wn),k)
            plt.scatter(w[wn[i]],w[wn[j]])
            plt.axis('off')
        else:
            f.add_subplot(len(wn),len(wn),k)
            plt.scatter([0,1],[0,1])
            plt.text(.5,.5,wn[i],ha='center',va='center',size=10)
            plt.axis('off')

#plt.show()


#线性回归

from sklearn import linear_model
y=np.array(w[wn[-1]])[:,np.newaxis]
X=np.array(w[wn[:-1]])


#print(y)

#print(w[wn[-1]])

reg=linear_model.LinearRegression()
reg.fit(X,y)
res=y-reg.predict(X)
import pylab
res.shape=res.shape[0]
f.add_subplot(121)#一行两列,数到第一个
plt.scatter(reg.predict(X),res)

plt.plot(reg.predict(X),np.ones(len(y)))#就是这里!!!!!
print(len(y))
print(np.ones(len(y)))
plt.xlabel('Fitted values')
plt.ylabel('Residuals')


f.add_subplot(122)
stats.probplot(res,dist='norm',plot=pylab)

plt.show()



图片说明图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题