導航:首頁 > 編程語言 > python線性回歸均方差

python線性回歸均方差

發布時間:2024-06-11 03:58:21

python怎麼用線性回歸擬合

from sklearn import linear_model#線性回歸clf = linear_model.LinearRegression()#訓練clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])#表達式參數clf.coef_#測試improt numpy as npx = np.array([1,1])y = x.dot(clf.coef_)

㈡ 如何用Python進行線性回歸以及誤差分析

數據挖掘中的預測問題通常分為2類:回歸與分類。

簡單的說回歸就是預測數值,而分類是給數據打上標簽歸類。

本文講述如何用Python進行基本的數據擬合,以及如何對擬合結果的誤差進行分析。

本例中使用一個2次函數加上隨機的擾動來生成500個點,然後嘗試用1、2、100次方的多項式對該數據進行擬合。

擬合的目的是使得根據訓練數據能夠擬合出一個多項式函數,這個函數能夠很好的擬合現有數據,並且能對未知的數據進行預測。

代碼如下:

㈢ 使用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,並把這些數據擬合為線性回歸模型。現在就可以用缺失值更依賴的那些列預測缺失的那一列。

一旦這個過程完成了,我們就得到了沒有任何缺失值的數據,供我們自由地分析數據。

為了練習,我會把這個問題留給你,所以請從網上獲取一些缺失值數據,解決這個問題。一旦你完成了請留下你的評論。我很想看看你的結果。

個人小筆記:

我想分享我個人的數據挖掘經歷。記得在我的數據挖掘引論課程上,教師開始很慢,解釋了一些數據挖掘可以應用的領域以及一些基本概念。然後突然地,難度迅速上升。這令我的一些同學感到非常沮喪,被這個課程嚇到,終於扼殺了他們對數據挖掘的興趣。所以我想避免在我的博客文章中這樣做。我想讓事情更輕松隨意。因此我嘗試用有趣的例子,來使讀者更舒服地學習,而不是感到無聊或被嚇到。

謝謝讀到這里——請在評論框里留下你的問題或建議,我很樂意回復你。

㈣ python多元線性回歸怎麼計算

1、什麼是多元線性回歸模型?

當y值的影響因素不唯一時,採用多元線性回歸模型。

y =y=β0+β1x1+β2x2+...+βnxn

例如商品的銷售額可能不電視廣告投入,收音機廣告投入,報紙廣告投入有關系,可以有 sales =β0+β1*TV+β2* radio+β3*newspaper.

2、使用pandas來讀取數據

pandas 是一個用於數據探索、數據分析和數據處理的python庫

[python]view plain

㈤ 用Python怎麼算Mean和standard deviation

可以用numpy模塊實現:

importnumpy

defcal_mean_std(sum_list_in):
#type:緩明猜(list)->tuple
N=sum_list_in.__len__()
narray=numpy.array(sum_list_in)
sum=narray.sum()
mean=sum/N

narray_dev=narray-mean
擾型narray_dev=narray_dev*narray_dev
sum_dev=narray_dev.sum()
DEV=float(sum_dev)/float(N)
槐爛STDEV=numpy.math.sqrt(DEV)
print"mean:",mean,";DEV:",DEV,";STDEV:",STDEV
returnmean,DEV,STDEV

均值為mean,方差為DEV,標准差是STDEV

傳入數據是一個list:sum_list_in

㈥ 求一個python程序,計算三個數的平均數和方差

def fangcha():
a=float(raw_input("請輸入a:"))
b=float(raw_input("請輸入b:"))
c=float(raw_input("請輸入C:"))
d=(a+b+c)/3.0
e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0
print "平均數是:%f方差是:%f" %(d,e)
fangcha()
Python2.7可用

㈦ python怎麼做均值方差歸一化

可以用線性歸一化,就是找到最大值和最小值。
平均數是表示一組數據集中趨勢的量數,是指在一組數據中所有數據之和再除以這組數據的個數。它是反映數據集中趨勢的一項指標。解答平均數應用題的關鍵在於確定「總數量」以及和總數量對應的總份數。在統計工作中,平均數(均值)和標准差是描述數據資料集中趨勢和離散程度的兩個最重要的測度值。

㈧ 用python求數據表中數據的均值與方差

以下為代碼:

numstr = input("請輸入全部數據:用英文逗號(,),中文逗號(,),

空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:")

if "," in numstr:

numlist = numstr.split(",")

elif "," in numstr:

numlist = numstr.split(",")

elif " " in numstr:

numlist = numstr.split(" ")

elif " " in numstr:

numlist = numstr.split(" ")

elif " " in numstr:

numlist = numstr.split(" ")

else:

numlist = [numstr]

numlist = list(map(lambda x:x.strip(",").strip(",").

strip(" ").strip(" ").strip(" "), numlist))

for i in numlist.():

try:

a = float(i)

except:

numlist.remove(i)

print("已過濾字元串:%s"%i)

#好了,上面很多隻是方便用戶而已(但還是有一些有用的),主要是下面

numlist = list(map(lambda x:float(x), numlist))#所有字元串轉為浮點

print("最終數列:",numlist)#輸出最終數列,進行核對

average = sum(numlist)/len(numlist)#用數列和除以出列長度得到平均數

variance = 0#方差,先記為0

for i in numlist:#遍歷列表

variance += (i - average) ** 2#反正就是公式對吧,先加進去

variance /= len(numlist)#還是公式,那一長串還得除以一個數列長度

print("均值:%.2f 方差:%.2f"%(average, variance))#分兩行輸出


以下為輸出效果:

請輸入全部數據:用英文逗號(,),中文逗號(,),空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:38,22,99,10,99,7, 25,,40

已過濾字元串:

最終數列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]

均值:42.50

方差:1181.75


以下為解析:

平均值的思路就是總和除以列表長度,方差的思路就是把所有的(x-均值)²加起來,最後再除以一個長度即可。

本程序的優點:輸入時逗號後出現空格與不小心多打逗號等情況都不會出問題,可以接受小數,可以先輸出最終數列以供核對。

閱讀全文

與python線性回歸均方差相關的資料

熱點內容
如何修改pdf內容 瀏覽:142
王者榮耀怎麼把ios的切到安卓 瀏覽:710
cms源碼免費版 瀏覽:40
雲伺服器如何開分機 瀏覽:445
電視劇vip免費觀看 瀏覽:106
電視tv免費影視軟體 瀏覽:273
如何查看惠普伺服器有沒做磁碟陣列 瀏覽:514
程序員賺錢的網站 瀏覽:840
日本和韓國的免費高分電影 瀏覽:827
高清電影免費觀看 瀏覽:398
韓國經典愛情電影推薦 瀏覽:205
pgptray私鑰加密 瀏覽:928
在線大片網站 瀏覽:568
手機怎麼開通中國銀行app 瀏覽:85
5g影視為什麼不能觀看了 瀏覽:662
韓國張美仁愛三部曲 瀏覽:540
安卓版手機怎麼拍照 瀏覽:950
如何解鎖文件夾鎖 瀏覽:720
免費在線觀看的網路電視劇 瀏覽:591
svn命令查看地址 瀏覽:896