Page 156 - 6734
P. 156
ya=f(xa, *popt) # масив значень f з параметрами
a=popt[0], b=popt[1]
plt.plot(x, y, 'ko--') # нарисувати емпіричну
залежність
plt.plot(xa, ya, 'k-') # нарисувати апроксимовану
залежність
plt.xlabel('x'); plt.ylabel('y'); plt.show()
print "Рисунок - Лінійна регресія"
# або за допомогою scipy.optimize.leastsq:
def residuals_(p,x,y): # p - кортеж параметрів
return y - f(x, p[0], p[1]) # повертає відхилення
ans=leastsq(func=residuals_,x0=(1,1),args=(x,y),full_
output=True) # мінімізує суму квадратів
print ans[0] # знайдені значення параметрів `a` і `b`
# або за допомогою scipy.stats.linregress (тільки
лінійна регресія):
from scipy.stats import linregress
slope, intercept, r_value, p_value,
std_err=linregress(x, y)
print slope, intercept # знайдені значення параметрів
лінійної залежності
print "R^2:", r_value**2 # коефіцієнт детермінації
(R-квадрат)
[ 1.05 0.8 ]
[[ 0.0175 -0.02625]
[-0.02625 0.06125]]
[ 0.13228757 0.24748738]
RMSE 0.295803989155
R^2: 0.969230769231
R^2: 0.969230769231
155