반응형
matplotlib / numpy를 사용한 선형 회귀
나는 목록 형식으로하지만, 내가 생성 한 산포도에 선형 회귀를 생성하기 위해 내 데이터를하려고하고, 내가 사용하는 찾을 수있는 모든 예제있어 polyfit
사용이 필요합니다 arange
. arange
그래도 목록을 허용하지 않습니다. 목록을 배열로 변환하는 방법에 대해 높고 낮게 검색했지만 명확한 것은 없습니다. 내가 뭔가를 놓치고 있습니까?
다음으로 정수 목록을에 대한 입력으로 사용하는 것이 가장 좋습니다 polyfit
.
다음은 내가 따르는 polyfit 예제입니다.
from pylab import *
x = arange(data)
y = arange(data)
m,b = polyfit(x, y, 1)
plot(x, y, 'yo', x, m*x+b, '--k')
show()
arange
목록을 생성 합니다 (잘, numpy 배열). help(np.arange)
세부 사항을 입력 하십시오. 기존 목록에서 호출 할 필요가 없습니다.
>>> x = [1,2,3,4]
>>> y = [3,5,7,9]
>>>
>>> m,b = np.polyfit(x, y, 1)
>>> m
2.0000000000000009
>>> b
0.99999999999999833
poly1d
"m * x + b"와 고차 동등 항목을 작성하는 대신 여기 에서 사용하는 경향이 있으므로 코드의 내 버전은 다음과 같습니다.
import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [3,5,7,10] # 10, not 9, so the fit isn't perfect
fit = np.polyfit(x,y,1)
fit_fn = np.poly1d(fit)
# fit_fn is now a function which takes in x and returns an estimate for y
plt.plot(x,y, 'yo', x, fit_fn(x), '--k')
plt.xlim(0, 5)
plt.ylim(0, 12)
이 코드 :
from scipy.stats import linregress
linregress(x,y) #x and y are arrays or lists.
다음과 같은 목록을 제공합니다.
기울기 :
회귀선의 부동 기울기
절편 : 회귀선의 부동
절편
r- 값 : 부동
상관 계수
p- 값 :
귀무 가설이 기울기가 0이라는 가설 검정을위한 부동 양측 p- 값
stderr : float
추정치의 표준 오차
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
x = np.array([1.5,2,2.5,3,3.5,4,4.5,5,5.5,6])
y = np.array([10.35,12.3,13,14.0,16,17,18.2,20,20.7,22.5])
gradient, intercept, r_value, p_value, std_err = stats.linregress(x,y)
mn=np.min(x)
mx=np.max(x)
x1=np.linspace(mn,mx,500)
y1=gradient*x1+intercept
plt.plot(x,y,'ob')
plt.plot(x1,y1,'-r')
plt.show()
이 .. 사용
또 다른 빠르고 더러운 대답은 다음을 사용하여 목록을 배열로 변환 할 수 있다는 것입니다.
import numpy as np
arr = np.asarray(listname)
from pylab import *
import numpy as np
x1 = arange(data) #for example this is a list
y1 = arange(data) #for example this is a list
x=np.array(x) #this will convert a list in to an array
y=np.array(y)
m,b = polyfit(x, y, 1)
plot(x, y, 'yo', x, m*x+b, '--k')
show()
참고 URL : https://stackoverflow.com/questions/6148207/linear-regression-with-matplotlib-numpy
반응형
'Program Tip' 카테고리의 다른 글
PHP 버퍼 ob_flush () 대 flush () (0) | 2020.10.21 |
---|---|
Ruby on Rails에서 String 클래스를 확장하려면 코드를 어디에 넣어야합니까? (0) | 2020.10.20 |
JSON을 CSV 형식으로 변환하고 변수에 저장하는 방법 (0) | 2020.10.20 |
범위 입력 슬라이더를 세로로 표시하는 방법 (0) | 2020.10.20 |
R의 대체 문자를 기반으로 문자열 분할 (0) | 2020.10.20 |