내가 생성 한 산점도에서 선형 회귀를 생성하려고하지만 내 데이터는 목록 형식이며 사용할 수있는 모든 예제 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
coef = np.polyfit(x,y,1)
poly1d_fn = np.poly1d(coef)
# poly1d_fn is now a function which takes in x and returns an estimate for y
plt.plot(x,y, 'yo', x, poly1d_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()
이 .. 사용
답변
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()
답변
또 다른 빠르고 더러운 대답은 다음을 사용하여 목록을 배열로 변환 할 수 있다는 것입니다.
import numpy as np
arr = np.asarray(listname)