लीस्ट-स्क्वेयर्स ऑप्टिमाइज़ेशन

Python में Linear Modeling परिचय

Jason Vestuto

Data Scientist

RSS का न्यूनतम

RSS के y-अक्ष बनाम slope के x-अक्ष का प्लॉट, ऊपर खुली पराबोला/कुएँ जैसा, न्यूनतम slope=25 के पास

RSS का slope = zero रखने पर, और थोड़ा calculus करने पर मिलता है:

  • $a_1 = covariance(x, y) / variance(x) $
  • $a_0 = mean(y) - a_1 \times mean(x) $
Python में Linear Modeling परिचय

Numpy से ऑप्टिमाइज़

उत्तम slope और intercept के Numpy expressions

x_mean = np.mean(x)
y_mean = np.mean(y)
x_dev = x - x_mean
y_dev = y - y_mean
a1 = np.sum( x_dev * y_dev ) / np.sum( x_dev**2 )
a0 = y_mean - (a1*x_mean)
Python में Linear Modeling परिचय

Scipy से ऑप्टिमाइज़

from scipy import optimize
x_data, y_data  = load_data()
def model_func(x, a0, a1):
    return a0 + (a1*x)
param_opt, param_cov = optimize.curve_fit(model_func, x_data, y_data)
a0 = param_opt[0]  # a0 is the intercept in y = a0 + a1*x
a1 = param_opt[1]  # a1 is the slope     in y = a0 + a1*x
Python में Linear Modeling परिचय

Statsmodels से ऑप्टिमाइज़

from statsmodels.formula.api import ols
x_data, y_data = load_data()
df = pd.DataFrame(dict(x_name=x_data, y_name=y_data))
model_fit = ols(formula="y_name ~ x_name", data=df).fit()
y_model = model_fit.predict(df)
x_model = x_data
a0 = model_fit.params['Intercept']
a1 = model_fit.params['x_name']
Python में Linear Modeling परिचय

अभ्यास करते हैं!

Python में Linear Modeling परिचय

Preparing Video For Download...