반응형
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 |