导航:首页 > 编程知识 > 编程回归直线哪里错了

编程回归直线哪里错了

发布时间:2022-09-17 05:14:30

A. 使用Python的线性回归问题,怎么解决

本文中,我们将进行大量的编程——但在这之前,我们先介绍一下我们今天要解决的实例问题。

1) 预测房子价格

闪电侠是一部由剧作家/制片人Greg Berlanti、Andrew Kreisberg和Geoff Johns创作,由CW电视台播放的美国电视连续剧。它基于DC漫画角色闪电侠(Barry Allen),一个具有超人速度移动能力的装扮奇特的打击犯罪的超级英雄,这个角色是由Robert Kanigher、John Broome和Carmine Infantino创作。它是绿箭侠的衍生作品,存在于同一世界。该剧集的试播篇由Berlanti、Kreisberg和Johns写作,David Nutter执导。该剧集于2014年10月7日在北美首映,成为CW电视台收视率最高的电视节目。

绿箭侠是一部由剧作家/制片人 Greg Berlanti、Marc Guggenheim和Andrew Kreisberg创作的电视连续剧。它基于DC漫画角色绿箭侠,一个由Mort Weisinger和George Papp创作的装扮奇特的犯罪打击战士。它于2012年10月10日在北美首映,与2012年末开始全球播出。主要拍摄于Vancouver、British Columbia、Canada,该系列讲述了亿万花花公子Oliver Queen,由Stephen Amell扮演,被困在敌人的岛屿上五年之后,回到家乡打击犯罪和腐败,成为一名武器是弓箭的神秘义务警员。不像漫画书中,Queen最初没有使用化名”绿箭侠“。

由于这两个节目并列为我最喜爱的电视节目头衔,我一直想知道哪个节目更受其他人欢迎——谁会最终赢得这场收视率之战。 所以让我们写一个程序来预测哪个电视节目会有更多观众。 我们需要一个数据集,给出每一集的观众。幸运地,我从维基网络上得到了这个数据,并整理成一个.csv文件。它如下所示。

闪电侠

闪电侠美国观众数

绿箭侠

绿箭侠美国观众数

1 4.83 1 2.84

2 4.27 2 2.32

3 3.59 3 2.55

4 3.53 4 2.49

5 3.46 5 2.73

6 3.73 6 2.6

7 3.47 7 2.64

8 4.34 8 3.92

9 4.66 9 3.06

观众数以百万为单位。

解决问题的步骤:

首先我们需要把数据转换为X_parameters和Y_parameters,不过这里我们有两个X_parameters和Y_parameters。因此,把他们命名为flash_x_parameter、flash_y_parameter、arrow_x_parameter、arrow_y_parameter吧。然后我们需要把数据拟合为两个不同的线性回归模型——先是闪电侠,然后是绿箭侠。 接着我们需要预测两个电视节目下一集的观众数量。 然后我们可以比较结果,推测哪个节目会有更多观众。

步骤1

导入我们的程序包:

Python

1

2

3

4

5

6

7

# Required Packages

import csv

import sys

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from sklearn import datasets, linear_model

步骤2

写一个函数,把我们的数据集作为输入,返回flash_x_parameter、flash_y_parameter、arrow_x_parameter、arrow_y_parameter values。

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

# Function to get data

def get_data(file_name):

data = pd.read_csv(file_name)

flash_x_parameter = []

flash_y_parameter = []

arrow_x_parameter = []

arrow_y_parameter = []

for x1,y1,x2,y2 in zip(data['flash_episode_number'],data['flash_us_viewers'],data['arrow_episode_number'],data['arrow_us_viewers']):

flash_x_parameter.append([float(x1)])

flash_y_parameter.append(float(y1))

arrow_x_parameter.append([float(x2)])

arrow_y_parameter.append(float(y2))

return flash_x_parameter,flash_y_parameter,arrow_x_parameter,arrow_y_parameter

现在我们有了我们的参数,来写一个函数,用上面这些参数作为输入,给出一个输出,预测哪个节目会有更多观众。

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# Function to know which Tv show will have more viewers

def more_viewers(x1,y1,x2,y2):

regr1 = linear_model.LinearRegression()

regr1.fit(x1, y1)

predicted_value1 = regr1.predict(9)

print predicted_value1

regr2 = linear_model.LinearRegression()

regr2.fit(x2, y2)

predicted_value2 = regr2.predict(9)

#print predicted_value1

#print predicted_value2

if predicted_value1 > predicted_value2:

print "The Flash Tv Show will have more viewers for next week"

else:

print "Arrow Tv Show will have more viewers for next week"

把所有东西写在一个文件中。打开你的编辑器,把它命名为prediction.py,复制下面的代码到prediction.py中。

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

# Required Packages

import csv

import sys

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from sklearn import datasets, linear_model

# Function to get data

def get_data(file_name):

data = pd.read_csv(file_name)

flash_x_parameter = []

flash_y_parameter = []

arrow_x_parameter = []

arrow_y_parameter = []

for x1,y1,x2,y2 in zip(data['flash_episode_number'],data['flash_us_viewers'],data['arrow_episode_number'],data['arrow_us_viewers']):

flash_x_parameter.append([float(x1)])

flash_y_parameter.append(float(y1))

arrow_x_parameter.append([float(x2)])

arrow_y_parameter.append(float(y2))

return flash_x_parameter,flash_y_parameter,arrow_x_parameter,arrow_y_parameter

# Function to know which Tv show will have more viewers

def more_viewers(x1,y1,x2,y2):

regr1 = linear_model.LinearRegression()

regr1.fit(x1, y1)

predicted_value1 = regr1.predict(9)

print predicted_value1

regr2 = linear_model.LinearRegression()

regr2.fit(x2, y2)

predicted_value2 = regr2.predict(9)

#print predicted_value1

#print predicted_value2

if predicted_value1 > predicted_value2:

print "The Flash Tv Show will have more viewers for next week"

else:

print "Arrow Tv Show will have more viewers for next week"

x1,y1,x2,y2 = get_data('input_data.csv')

#print x1,y1,x2,y2

more_viewers(x1,y1,x2,y2)

可能你能猜出哪个节目会有更多观众——但运行一下这个程序看看你猜的对不对。

3) 替换数据集中的缺失值

有时候,我们会遇到需要分析包含有缺失值的数据的情况。有些人会把这些缺失值舍去,接着分析;有些人会用最大值、最小值或平均值替换他们。平均值是三者中最好的,但可以用线性回归来有效地替换那些缺失值。

这种方法差不多像这样进行。

首先我们找到我们要替换那一列里的缺失值,并找出缺失值依赖于其他列的哪些数据。把缺失值那一列作为Y_parameters,把缺失值更依赖的那些列作为X_parameters,并把这些数据拟合为线性回归模型。现在就可以用缺失值更依赖的那些列预测缺失的那一列。

一旦这个过程完成了,我们就得到了没有任何缺失值的数据,供我们自由地分析数据。

为了练习,我会把这个问题留给你,所以请从网上获取一些缺失值数据,解决这个问题。一旦你完成了请留下你的评论。我很想看看你的结果。

个人小笔记:

我想分享我个人的数据挖掘经历。记得在我的数据挖掘引论课程上,教师开始很慢,解释了一些数据挖掘可以应用的领域以及一些基本概念。然后突然地,难度迅速上升。这令我的一些同学感到非常沮丧,被这个课程吓到,终于扼杀了他们对数据挖掘的兴趣。所以我想避免在我的博客文章中这样做。我想让事情更轻松随意。因此我尝试用有趣的例子,来使读者更舒服地学习,而不是感到无聊或被吓到。

谢谢读到这里——请在评论框里留下你的问题或建议,我很乐意回复你。

B. 下列直线回归方程中,错误的有()

这项是多选题,考卷刚做过,答案B C D

C. 回归直线法解析

读财管时很难记的一个公式是:关于企业资金需要量预测中的资金习性预测法下的回归直线法.

以前也是死记硬背,但是一会功夫就一股脑地忘到九宵云外去了.
可是,前几天,有了一个简单的公式:

该联立方程组,可以用以下方法很简便地推出:
基本公式:y=a+bx
将各期数据代入,可得:

以前这样已经很不错了.
可是.哈哈,晚上听课,
又有了一个更世俗,更简单的记法.

好像变复杂了,可是这个记忆的方法真的很管用.它的产生还是缘于一个老师的灵感:
看到路上有个结婚的车队想到了这个变形公式:
B的推导:
西格玛像一座房子,X和Y看成是两个人一女一男,两个人结婚了住在同一幢房子里,有很多人来祝贺,用网络语言说是N个人,这样就有分子的前半部分了.随着时间的流逝,就是减号,两个人感情不和了,分居了,住在不同的房子里了,当然分开来不是什么好事,然后就没有祝贺的人了,N不见了,这样分子的后半部分出来了.
接下来就是分母了,把分子的Y全变成X,好了.B的公式出来了.
A的公式就是根据推出.

这位老师笑着说,相信用这个方法可以将回归直线法的公式记上两年.
嗯.我看成!

D. 应用直线相关与回归时应注意哪些问题

1、作回归分析要有实际意义,不能把毫无关联的两种现象,随意进行回归分析,忽视事物现象间的内在联系和规律;如对儿童身高与小树的生长数据进行回归分析既无道理也无用途。另外,即使两个变量间存在回归关系时,也不一定是因果关系,必须结合专业知识作出合理解释和结论。
2、直线回归分析的资料,一般要求应变量Y是来自正态总体的随机变量,自变量X可以是正态随机变量,也可以是精确测量和严密控制的值。若稍偏离要求时,一般对回归方程中参数的估计影响不大,但可能影响到标准差的估计,也会影响假设检验时P值的真实性。
3、进行回归分析时,应先绘制散点图(scatter plot)。若提示有直线趋势存在时,可作直线回归分析;若提示无明显线性趋势,则应根据散点分布类型,选择合适的曲线模型(curvilinear modal),经数据变换后,化为线性回归来解决。一般说,不满足线性条件的情形下去计算回归方程会毫无意义,最好采用非线性回归方程的方法进行分析。
4、绘制散点图后,若出现一些特大特小的离群值(异常点),则应及时复核检查,对由于测定、记录或计算机录入的错误数据,应予以修正和剔除。否则,异常点的存在会对回归方程中的系数a、b的估计产生较大影响。
5、回归直线不要外延。直线回归的适用范围一般以自变量取值范围为限,在此范围内求出的估计值称为内插(interpolation);超过自变量取值范围所计算的称为外延(extrapolation)。若无充足理由证明,超出自变量取值范围后直线回归关系仍成立时,应该避免随意外延。

E. 这两个数控编程程序哪里出错了呀,显示起点半径和终点半径之差超过规定值

一、数控中起点半径和终点半径之差超过规定值的意思是:有某个数值给大了,超过了机床的承受极限。也就是终点坐标与前一句的终点坐标之间距离相距过大,以至于圆弧不能连接起两个点来。

如果允许的话,要不改一下两点之间的坐标,让两点之间的距离“近”一些; 要不就加大“R”值,让圆弧的半径值大一点。

二、起点半径和终点半径之差超过规定值的原因:

1、小数点问题,圆弧指令G02/G03,半径R未加小数点;

2、G02或G03格式有误,G02/G03指令中终点坐标值不正确;

3、圆弧指本身没问题,但其前后程序段有问题,G02/G03圆弧指令后一句指令,若是走直线段,未加指令G00/G01;

4、漏写了程序段。

三、解决案例

1、小数点问题

如:G03 X30. Z-10. R5

G02X55.Z-23R10

2、G02或G03格式有误:

如缺少R:G02 X20.Z-12;

3、圆弧指本身没问题,但其前后程序段有问题如下图


向左转|向右转

F. 有关线性回归方程的问题。

我们把y尖成为y_hat。同理可推a,b

现在我们有一堆观测点(xi,yi),想用一个线性方程y=bx+a来代表这堆观测点,但是b,a都是算不出来的(为什么,因为观测点根本就不在一条线上,数学告诉我们2点确定一条直线)。所以我们用b_hat,a_hat来重新构造一条新的直线,使该直线在某种意义下离所有点最近。这条线就是回归方程 y_hat=b_hat x+ a_hat

原来的观测点(xi,yi)都在这条线的周围(可能会有几个准确的在线上,但都是巧合)。这些个y_hat是在回归方程上的点。

所以(均值x,均值y)必在回归方程上是错误的。(均值x,均值y_hat)才是

G. 【数必修3】 回归直线必经过散点图的多个点 这句话对么

错,就一条,到各个点距离和最小的直线为回归直线。

H. 思考:回归直线方程一定过点(x巴,y巴)吗

对变量之间统计关系进行定量描述的一种数学表达式。 指具有相关的随机变量和固定变量之间关系的方程。 回归直线方程 若:在一组具有相关关系的变量的数据(x与Y)间,通过散点图我们可观察出所有数据点都分布在一条直线附近,这样的直线可以画出许多条,而我们希望其中的一条最好地反映x与Y之间的关系,即我们要找出一条直线,使这条直线“最贴近”已知的数据点,记此直线方程为(如右所示,记为①式) 这里在y的上方加记号“^”,是为了区分Y的实际值y,表示当x取值xi=1,2,……,6)时,Y相应的观察值为yi,而直线上对应于xi的纵坐标是 ①式叫做Y对x的 回归直线方程,相应的直线叫做回归直线,b叫做回归系数。要确定回归直线方程①,只要确定a与回归系数b。 回归直线的求法 最小二乘法: 总离差不能用n个离差之和 来表示,通常是用离差的平方和,即 作为总离差,并使之达到最小,这样回归直线就是所有直线中Q去最小值的那一条,这种使“离差平方和最小”的方法,叫做最小二乘法

阅读全文

与编程回归直线哪里错了相关的资料

热点内容
哪个网站可以听南音 浏览:264
苹果装系统装win7驱动 浏览:686
php判断file是否有文件 浏览:979
和平精英使用什么编程开发 浏览:102
f3文件 浏览:523
快手3d环绕音乐用什么app 浏览:376
linux新增一个文件 浏览:440
消失的手机图片在哪个文件夹里 浏览:610
word2010表格外框双线内框单线 浏览:56
powermill如何提高编程速度 浏览:465
遥感30号卫星数据存在哪里 浏览:846
请领导看文件应该用什么词 浏览:273
bt工具 浏览:86
js循环获取最大值 浏览:846
如何把网站激活 浏览:453
pdf文件怎么转换成dwg 浏览:151
有哪些扩展名表示为图鉴图片文件 浏览:843
怎么破解小米账户密码是多少 浏览:864
pdf文件名怎么换颜色 浏览:868
核桃编程如何退钱 浏览:17

友情链接