แกแขแแขแแแจแ แแแแฎแแแฃแแแ แแแ แขแแแ (แแแฌแงแแแแแแฃแแ) แ แแแ แแกแแแก แฎแแแแก แแแแแแแขแแแฃแ แ แแแแขแแแแแแก แแแแกแแแฆแแ แแก แ แแแแแแแแ แแแ.
แแฅ แแแแฎแแแฃแแ แแแแขแแแแแแก แแแแฎแกแแแก แงแแแแ แแแแแแ แแคแฃแซแแแแ แฃแแชแแ แแก แแแแแ แแขแแแแก แแแแแแก. แแแแแ แแฆแแแแจแแแ แแแแแแแแ แจแแแแแแแแแ แแ:
- แแแแแแขแแแฃแ แ แแแแแฌแงแแแขแ
- แแ แแแแแแขแฃแแ แแแฆแแแ แแ
- แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ
แกแฌแแ แ แฎแแแแก แแแแขแแแแแแก แแแแฎแกแแแก แแแแแแฃแแ แแแแแแแกแแแแก, แกแขแแขแแแจแ แแแชแแแฃแแแ แกแฎแแแแแกแฎแแ แคแฃแแฅแชแแแแ, แ แแแแแแแช แซแแ แแแแแแ แแงแแคแ แแแแแ, แ แแแแแแแช แแแฌแแ แแแแ แแแแแแแแแแแก แแแแแงแแแแแแก แแแ แแจแ. แแฃแแแ แแ แแกแแแ, แ แแแแแแแช แแงแแแแแแ แแแแแแแแแแก แแฃแแแ. แแแแแแแ, แ แแ แแแแแชแแแแ แแแแแงแแแแแ แแฃแแแ แจแแแแชแแ แแแก แแแแแแแแแก แฎแแ แฏแแแก.
แกแขแแขแแแจแ แแแชแแแฃแแ แงแแแแ แแแแ แแฌแแ แแแ แแแแแ แแแแแแ 2.7 แแแแแงแแแแแแ แแฃแแแขแแ แแก แ แแแฃแแ. แฌแงแแ แแก แแแแ แแ แคแแแแ แแแแฃแจแแก แแแแแชแแแแแแ แแ แแก แแแแแแแกแแแฃแแ
แกแขแแขแแ แฃแคแ แ แแแขแแ แแ แแก แแแแแแแแ แ แแแแ แช แแแแฌแงแแแแแแกแแแแก, แแกแแแ แแแแแแแก, แแแแช แฃแแแ แแแแแแแแแแแแ แแแแฌแงแ แฎแแแแแแฃแ แ แแแขแแแแฅแขแแก แซแแแแแ แคแแ แแ แแแแงแแคแแแแแแก - แแแแฅแแแแแแชแแแแแแแแก แจแแกแฌแแแแ.
แแแกแแแแก แกแแแแฃแกแขแ แแชแแแ แแแงแแแแแ แซแแแแแ แแแ แขแแ แแแแแแแแก.
แแแ แแแแแแก แแแแแแแแ
แฉแแแ แแแแฅแแก แฎแฃแแ แแแแจแแแแแแแ, แ แแแแแแช แแฎแแกแแแแแแก แแแแแแแแแแฃแแแแแก Y แกแแฌแงแแกแ X (แชแฎแ แแแ No1):
แชแฎแ แแแ No1 โแแแแแแแแ แแแ แแแแแโ
แฉแแแ แแแแแ แแฃแแแแ, แ แแ แฆแแ แแแฃแแแแแแ แฌแแแแฌแแแแก แแแแ แแ - แจแแแแกแแแแแ แแ แแแแจแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แจแแแแกแแแแแ แแแแแแแแแแฃแแแ แฌแแแก แแแแแ แแ - แแ แแแแแ แแ แแแจแแแ, แ แแแแแแแช แจแแแแกแแแแแแ แแแแแแแแแแฃแแ.
แแแแแแแแ แแกแแ, แ แแแแ แช แฌแแแก แแแแแ แจแแแแกแแแแแก แแแ แแแแแ แแแแแแแแแแฃแแแแแก แแแแแกแแแ แแกแแ, แแกแแแ แแแแจแแแแแแแแแแก แ แแแแแแแแแก แแแแแกแแแ แแกแแ - แซแแแแแ แชแแขแแ. แแฃแแชแ, แแกแแแ แแแแแ แขแแแแแ แจแแกแแซแแแแแแก แแแฎแแแก, แ แแแแ แช แแแแแแแ, แแ แ แงแแแแแแแแก แแแ แขแแแแ แแฎแกแแแก แแแกแแแ, แ แแแแแกแแช แแแแฌแงแแแแแแแแก แแแแแกแแแแ. แแ แแกแแแ แ แแชแฎแแแแแก แกแแแแ แขแแแ แกแแจแฃแแแแแแก แแแกแชแแแก แแแ, แแแกแแช แกแฃแ แก แแแแแญแ แแก แแแแแแแแ แฅแแฆแแแแแ, แแแแจแแแแแแแแแ แจแ แแแแก แฎแแ แฏแแแแก แแแ แแจแ.
แแแแฃแจแแแ, แ แแ แแแแแแแแจแ แแแชแแแฃแแ แแแแแแแแแแฃแแแแแก แแแแฎแแแแแ แจแแกแแซแแแแแแแ แคแแ แแแก แแแ แขแแแ (แแแฌแงแแแแแแฃแแ) แ แแแ แแกแแแก แฎแแแแก แแแแแแแขแแแฃแ แ แแแแขแแแแแแ:
แกแแแแช แแ แแก แแแ, แ แแแแแจแแช แแแฆแแแฃแแแ แจแแแแกแแแแแ, - แจแแแแกแแแแแ แแแแก แจแแกแแแแแแกแ, ะธ แแ แแก แกแแแแ แแฃแแ แฎแแแแก แ แแแ แแกแแแก แแแแคแแชแแแแขแแแ.
แแแแแแแแแกแฌแแแแ, แ แแ แแแแคแแชแแแแขแ แฎแจแแ แแ แฃแฌแแแแแแ แกแแแแ แแฃแแ แฎแแแแก แคแแ แแแแแก แแ แแ แแแแแแขแก; แฌแแ แแแแแแแแก แแแแฎแแก, แ แแแแแแแช แ แแชแ แแชแแแแแ .
แชแฎแแแแ, แแแแแแแแจแ แฉแแแแ แแแแชแแแแ แแแแขแแแแแแจแ แแกแแแ แแแแคแแชแแแแขแแแแก แจแแ แฉแแแ ะธ , แ แแแแแก แแ แแกแแช แฎแแแแ แฉแแแแ แแแแแแแแแแ แจแแแแกแแแแแแแก แแแแจแแแแแแแแแแก แแแแแฎแ แแแ แญแแจแแแ แแขแ แแแกแฃแฎแแแแแแ, แ.แ. แแแแฃแจแจแ แฌแแ แแแแแแแแแ แแแแจแแแแแแแแแ แแแแแแแแฃแ แ แแฅแแแแ.
แแแแแแแแฃแ แ แแแแแ แแขแแก แแแแแแ
แฃแแชแแ แแกแ แแแแแ แแขแแแแก แแแแแแแก แแแฎแแแแแ, แแแแแฎแ แ แฃแแแ แแแแแแแแแแแก แแแแแ แแขแจแ. แแก แขแแฅแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแ แแแชแแแแ แแแแแฎแ แแแแก แแ แแฎแ แแแ แแแฃแฅแแแแ, แแฃ แแแ แแฅแแ แกแแแแ แแกแแแ แ แแแจแแแแ. แแแแแแแแแ, แแฃ แแ แ แจแแแแฎแแแแแจแ, แแแแแฎแ แ แแ แแก +5 (แแแฃแก แฎแฃแแ), แฎแแแ แแแแ แแจแ -5 (แแแแฃแก แฎแฃแแ), แแแจแแ แแแแแฎแ แแแแก แฏแแแ แแแแฃแฅแแแแก แแ แแแแแแแก แแ แจแแแแแแแก 0 (แแฃแแก). แจแแกแแซแแแแแแแ แแ แ แแแแแ แแขแจแ แแแแแฎแ แ, แแ แแแแ แแแแแแงแแแแก แแแแฃแแแก แแแแกแแแ แแ แแแจแแ แงแแแแ แแแแแฎแ แ แแแแแแแแ แแฅแแแแ แแ แแแแ แแแแแแ. แฉแแแ แแ แแแกแแฃแแ แแแ แแ แกแแแแแฎแแ แแแขแแแฃแ แแ, แแแแ แแ แฃแแ แแแแ แแฆแแแแจแแแแ, แ แแ แแแแแแแแแแแก แแแฎแแ แฎแแแฃแแแแแกแแแแก, แฉแแแฃแแแแ แแแแ แแแแแฎแ แแก แแแแแ แแขแ.
แแกแ แแแแแแงแฃแ แแแ แคแแ แแฃแแ, แ แแแแแแแช แแแแแกแแแฆแแ แแแ แแแแแ แแขแฃแแ แแแแแฎแ แแแแก (แจแแชแแแแแแแก) แฃแแชแแ แแก แฏแแแก:
แกแแแแช แแ แแก แญแแจแแแ แแขแ แแแกแฃแฎแแแแก แแแแฎแแแแแแก แคแฃแแฅแชแแ (แแแฃ แฉแแแ แแแแ แแแแแแแแแแ แจแแแแกแแแแแ),
แแ แแก แญแแจแแแ แแขแ แแแกแฃแฎแแแ (แจแแกแแแแแ แแแชแแแฃแแแ แแแแฃแจแจแ),
แแ แแก แแแแฃแจแแก แแแแแฅแกแ (แแ แแแแก แ แแชแฎแแ, แ แแแแแจแแช แแแแแกแแแฆแแ แแแ แแแแแฎแ แ)
แแแแแแกแฎแแแแแ แคแฃแแฅแชแแ, แแแแแกแแแฆแแ แแ แแแ แชแแแแฃแ แ แแแคแแ แแแชแแแแฃแ แ แแแแขแแแแแแแ แแ แแแแ แแแงแแ แแแแแแแแแ แแแแแแขแแแฃแ แแแแแแฎแแแแ. แแแแ แแ แฏแแ แแแแแ แแฅแกแแฃแ แกแแ แแแแแแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แ แแ แแก แแแคแแ แแแชแแแชแแ แแ แแแแแฎแกแแแแ แฌแแ แแแแแฃแแแก แแแแแแขแ แแฃแแ แแแแจแแแแแแแ.
แแแคแแ แแแชแแแชแแ
แแแคแแ แแแชแแแชแแ แแ แแก แคแฃแแฅแชแแแก แฌแแ แแแแแฃแแแก แแแแแแก แแแแ แแชแแ.
แ แแกแแแแก แแแแแแงแแแแแ แฌแแ แแแแแฃแแ? แคแฃแแฅแชแแแก แฌแแ แแแแแฃแแ แแฎแแกแแแแแแก แคแฃแแฅแชแแแก แชแแแแแแแแก แกแแฉแฅแแ แแก แแ แแแแฃแแแแแ แแแก แแแแแ แแฃแแแแแก. แแฃ แฌแแ แแแแแฃแแ แแแชแแแฃแ แฌแแ แขแแแจแ แแแแแแแแแ, แแแจแแ แคแฃแแฅแชแแ แแแ แแแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แคแฃแแฅแชแแ แแชแแ แแแแ. แแ แ แแช แฃแคแ แ แแแแแ แแแกแแแฃแขแฃแ แ แฌแแ แแแแแฃแแแก แแแแจแแแแแแแ, แแแ แฃแคแ แ แแแฆแแแแ แคแฃแแฅแชแแแก แแแแจแแแแแแแแแแก แชแแแแแแแแก แกแแฉแฅแแ แ, แแกแแแ แแแ แฃแคแ แ แชแแชแแแแ แคแฃแแฅแชแแแก แแ แแคแแแแก แแแฎแ แแแแแ.
แแแแแแแแแ, แแแแแ แขแแก แแแแ แแแแแขแแ แกแแกแขแแแแก แแแ แแแแแจแ แฌแแ แแแแแฃแแแก แแแแจแแแแแแแ M(0,0) แฌแแ แขแแแจแ แฃแแ แแก + 25 แแแจแแแแก, แ แแ แแแชแแแฃแ แแแแแแขแจแ, แ แแแแกแแช แแแแจแแแแแแแ แแแแแแแแชแแแแแก แแแ แฏแแแแ แฉแแแฃแแแแ แแแ แแ แแแฃแแแ, แฆแแ แแแฃแแแแ แแแ แแแแ 25 แฉแแแฃแแแแ แแแ แแ แแแฃแแแ. แแ แแคแแแแ แแก แแแแจแแแแแแแแแแก แกแแแแแแ แแแแแแ แแ แแแก แฐแแแแก แแแชแแแฃแแ แฌแแ แขแแแแแแ.
แฒกแฎแแ แแแแแแแแ. แฌแแ แแแแแฃแแ แฆแแ แแแฃแแแแ แขแแแแ -0,1 แแแจแแแแก, แ แแ แแแแแแแแแแแแแกแแก แแ แ แฉแแแฃแแแแ แแ แแ แแแฃแแแ, แฆแแ แแแฃแแแแ แแชแแ แแแแ แแฎแแแแ 0,1 แฉแแแฃแแแแ แแแ แแ แแแฃแแแ. แแแแแแ แแฃแแแ, แคแฃแแฅแชแแแก แแ แแคแแแแ, แฉแแแ แจแแแแแซแแแ แแแแแแแแ แแแ แซแแแแก แจแแกแแแฉแแแแ แแแฆแแแแแแ แคแแ แแแแแ. แแแแกแแแ แแแแแแแแแก แแแฎแแขแแ, แแแแฅแแก แซแแแแแ แแแแ แแแจแแแแแ แแแแแแ แแแ แคแแ แแแแแ, แฌแแแ แแแแแแแแแกแแแ แแแแกแฎแแแแแแแ, แกแแแแช แซแแแแแ แชแแชแแแ แแฌแแแ แแแแแแแ แแกแแแ แแแแแแฌแแ :)
แแแ แแแแ, แคแฃแแฅแชแแแก แแแคแแ แแแชแแ แแแแก แจแแแแแ แจแแแกแแแแ ะธ , แฉแแแ แแแแแกแแแฆแแ แแแ 1 แ แแแแก แแแฌแแแแแ แแแ แแแคแแ แแแชแแแแฃแ แ แแแแขแแแแแแแ. แแแแขแแแแแแแแก แแแแกแแแฆแแ แแก แจแแแแแ แแแแแฆแแแ แแ แ แแแแขแแแแแแก แกแแกแขแแแแก, แ แแแแแก แแแแฎแกแแแ แฉแแแ แจแแแซแแแแ แแแแคแแชแแแแขแแแแก แแกแแแ แแแแจแแแแแแแแแแก แแ แฉแแแแก. ะธ , แ แแแแแก แแ แแกแแช แแแชแแแฃแ แฌแแ แขแแแแแจแ แจแแกแแแแแแกแ แฌแแ แแแแแฃแแแแแก แแแแจแแแแแแแแแ แแชแแแแแ แซแแแแแ, แซแแแแแ แแชแแ แ แ แแแแแแแแแ, แฎแแแ แแแแแแขแแแฃแ แ แแแแฎแกแแแก แจแแแแฎแแแแแจแ แกแแแ แแแ แแ แแชแแแแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แจแแชแแแแแก แคแฃแแฅแชแแ แแฆแแแฉแแแแ แแแแคแแชแแแแขแแแแ แแแแฆแฌแแแก แแแแแแฃแแก, แ แแแแแ แแ แฌแแ แขแแแแแจแ แแแฌแแแแแ แแแ แฌแแ แแแแแฃแแแแแก แแแแจแแแแแแแแแ แแฃแแแก แขแแแ แแฅแแแแ.
แแกแ แ แแ, แแแคแแ แแแชแแ แแแแก แฌแแกแแแแก แแแฎแแแแแ, 1-แแ แ แแแแก แแแฌแแแแแ แแแ แฌแแ แแแแแฃแแ แแแแขแแแแแ แแแแคแแชแแแแขแแแ แแแแแ แแแแแจแ แแแแฆแแแก แคแแ แแแก:
1 แ แแแแก แแแฌแแแแแ แแแ แฌแแ แแแแแฃแแ แแแแขแแแแแ แแแแแ แ แแแแฆแแแก แคแแ แแแก:
แจแแแแแแ, แฉแแแ แแแแแฆแแ แแแแขแแแแแแแแก แกแแกแขแแแ, แ แแแแแกแแช แแฅแแก แกแแแแแแ แแแ แขแแแ แแแแแแขแแแฃแ แ แแแแฎแกแแ:
แแแกแแฌแงแแกแ{แแแแขแแแแแ*}
แแแกแแฌแงแแกแ{แจแแแแฎแแแแแแ}
na + bsumlimits_{i=1}^nx_i โ sumlimits_{i=1}^ny_i = 0
sumlimits_{i=1}^nx_i(a +bsumlimits_{i=1}^nx_i โ sumlimits_{i=1}^ny_i) = 0
แแแกแแกแ แฃแแ{แจแแแแฎแแแแแแ}
แแแกแแกแ แฃแแ{แแแแขแแแแแ*}
แแแแขแแแแแแก แแแแฎแกแแแแแ แฌแแแแกแฌแแ แฉแแแขแแแ แแแ, แจแแแแแแฌแแแ แฉแแขแแแ แแแ แกแฌแแ แแ แแ แแแแแชแแแแแแก แคแแ แแแขแแ แแแ.
แแแแแชแแแแแแก แฉแแขแแแ แแแ แแ แคแแ แแแขแแ แแแ
แฃแแแ แแฆแแแแจแแแก, แ แแ แแแแก แแแแ, แ แแ แแแแแแขแแแฃแ แ แแแแแฌแงแแแขแแกแแแแก, แจแแแแแ แแ แแ แแแแแแขแฃแแ แแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแแ แแแฆแแแ แแแกแแแแก, แฉแแแ แแแแแแแงแแแแแ แแแแก แแ แแแ แแแชแแแ: แแแแแแแแแแแก แแแแแงแแแแแแ แแฃแแแ แแ แแแกแ แแแแแงแแแแแแก แแแ แแจแ, แแแจแแ แแแแแญแแ แแแแ แแแแแชแแแแ แจแแกแแแแแแกแ แคแแ แแแขแแ แแแ (แแฎ. แแแแ).
แแแแแชแแแแ แฉแแขแแแ แแแแกแ แแ แแแแฃแจแแแแแแก แแแแ
# ะธะผะฟะพััะธััะตะผ ะฒัะต ะฝัะถะฝัะต ะฝะฐะผ ะฑะธะฑะปะธะพัะตะบะธ
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
import pylab as pl
import random
# ะณัะฐัะธะบะธ ะพัะพะฑัะฐะทะธะผ ะฒ Jupyter
%matplotlib inline
# ัะบะฐะถะตะผ ัะฐะทะผะตั ะณัะฐัะธะบะพะฒ
from pylab import rcParams
rcParams['figure.figsize'] = 12, 6
# ะพัะบะปััะธะผ ะฟัะตะดัะฟัะตะถะดะตะฝะธั Anaconda
import warnings
warnings.simplefilter('ignore')
# ะทะฐะณััะทะธะผ ะทะฝะฐัะตะฝะธั
table_zero = pd.read_csv('data_example.txt', header=0, sep='t')
# ะฟะพัะผะพััะธะผ ะธะฝัะพัะผะฐัะธั ะพ ัะฐะฑะปะธัะต ะธ ะฝะฐ ัะฐะผั ัะฐะฑะปะธัั
print table_zero.info()
print '********************************************'
print table_zero
print '********************************************'
# ะฟะพะดะณะพัะพะฒะธะผ ะดะฐะฝะฝัะต ะฑะตะท ะธัะฟะพะปัะทะพะฒะฐะฝะธั NumPy
x_us = []
[x_us.append(float(i)) for i in table_zero['x']]
print x_us
print type(x_us)
print '********************************************'
y_us = []
[y_us.append(float(i)) for i in table_zero['y']]
print y_us
print type(y_us)
print '********************************************'
# ะฟะพะดะณะพัะพะฒะธะผ ะดะฐะฝะฝัะต ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ NumPy
x_np = table_zero[['x']].values
print x_np
print type(x_np)
print x_np.shape
print '********************************************'
y_np = table_zero[['y']].values
print y_np
print type(y_np)
print y_np.shape
print '********************************************'
แแแแฃแแแแแแชแแ
แแฎแแ, แแแก แจแแแแแ แ แแช, แแแ แแแ แ แแแจแ, แฉแแขแแแ แแแ แแแแแชแแแแแ, แแแแ แแช, แจแแแแแแฌแแแ แฉแแขแแแ แแแแก แกแแกแฌแแ แ แแ แกแแแแแแแ แแแแแคแแ แแแขแแ แแแแแชแแแแแ, แแแแแแฎแแ แชแแแแแแ แแแ แแแ แแแแฃแแแแแแชแแแก. แแแแกแแแแก แฎแจแแ แแ แแแแแงแแแแแฃแแ แแแแแแแ แฌแงแแแแ แแแแแแแ แแแแแแแแแแแแ แแฆแแแกแคแแ แ. แฉแแแแก แแแแแแแแจแ, แจแแแฆแฃแแฃแแ แ แแแแแแแแแก แแแแ, แแแแแแแแแแแก แแแแแงแแแแแแก แแแ แ แแ แแฅแแก แแฆแแแกแคแแ แ. แฉแแแ แแแแแแแงแแแแแ แฉแแแฃแแแแ แแ แแแแแแแแแแแก matplotlib แแ แฃแแ แแแแ แจแแฎแแแแ แกแแแขแแ แก.
Scatterplot แแแแ
print 'ะัะฐัะธะบ โ1 "ะะฐะฒะธัะธะผะพััั ะฒััััะบะธ ะพั ะผะตัััะฐ ะณะพะดะฐ"'
plt.plot(x_us,y_us,'o',color='green',markersize=16)
plt.xlabel('$Months$', size=16)
plt.ylabel('$Sales$', size=16)
plt.show()
แแ แแคแแแ No1 โแจแแแแกแแแแแแแก แแแแแแแแแแฃแแแแ แฌแแแก แแแแแโ
แแแแแแขแแแฃแ แ แแแแแฌแงแแแขแ
แแแแแ แแแแแแแงแแแแ แงแแแแแแ แแแแ แชแแแแแฃแแ แแแกแขแ แฃแแแแขแแแ แแแแแแ แแ แแแแฎแกแแแแ แแแแขแแแแแแแ แกแแกแขแแแ:
แแแกแแฌแงแแกแ{แแแแขแแแแแ*}
แแแกแแฌแงแแกแ{แจแแแแฎแแแแแแ}
na + bsumlimits_{i=1}^nx_i โ sumlimits_{i=1}^ny_i = 0
sumlimits_{i=1}^nx_i(a +bsumlimits_{i=1}^nx_i โ sumlimits_{i=1}^ny_i) = 0
แแแกแแกแ แฃแแ{แจแแแแฎแแแแแแ}
แแแกแแกแ แฃแแ{แแแแขแแแแแ*}
แแ แแแแ แแก แฌแแกแแ แฉแแแ แแแแแแแ แแแแแ แแแแแกแแแฆแแ แแแก, แแกแแแ แ แแแแ แช แแแขแแ แแแแแแขแแแก แแ , แ แแก แจแแแแแแแช, แแแขแแ แแแแแแขแแก แแแงแแคแ แแแแแ แแแขแแ แแแแแแขแแแแ - แแแแแ แแแแคแแชแแแแขแ , แแแแแแแแฃแ แแ แแแแฃแแแแ แแแแคแแชแแแแขแก .
แแแแแแขแแแฃแ แ แแแแแฌแงแแแขแแก แแแแ
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ะดะปั ัะฐััะตัะฐ ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b ะฟะพ ะฟัะฐะฒะธะปั ะัะฐะผะตัะฐ
def Kramer_method (x,y):
# ััะผะผะฐ ะทะฝะฐัะตะฝะธะน (ะฒัะต ะผะตัััะฐ)
sx = sum(x)
# ััะผะผะฐ ะธััะธะฝะฝัั
ะพัะฒะตัะพะฒ (ะฒััััะบะฐ ะทะฐ ะฒะตัั ะฟะตัะธะพะด)
sy = sum(y)
# ััะผะผะฐ ะฟัะพะธะทะฒะตะดะตะฝะธั ะทะฝะฐัะตะฝะธะน ะฝะฐ ะธััะธะฝะฝัะต ะพัะฒะตัั
list_xy = []
[list_xy.append(x[i]*y[i]) for i in range(len(x))]
sxy = sum(list_xy)
# ััะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะทะฝะฐัะตะฝะธะน
list_x_sq = []
[list_x_sq.append(x[i]**2) for i in range(len(x))]
sx_sq = sum(list_x_sq)
# ะบะพะปะธัะตััะฒะพ ะทะฝะฐัะตะฝะธะน
n = len(x)
# ะพะฑัะธะน ะพะฟัะตะดะตะปะธัะตะปั
det = sx_sq*n - sx*sx
# ะพะฟัะตะดะตะปะธัะตะปั ะฟะพ a
det_a = sx_sq*sy - sx*sxy
# ะธัะบะพะผัะน ะฟะฐัะฐะผะตัั a
a = (det_a / det)
# ะพะฟัะตะดะตะปะธัะตะปั ะฟะพ b
det_b = sxy*n - sy*sx
# ะธัะบะพะผัะน ะฟะฐัะฐะผะตัั b
b = (det_b / det)
# ะบะพะฝััะพะปัะฝัะต ะทะฝะฐัะตะฝะธั (ะฟัะพะพะฒะตัะบะฐ)
check1 = (n*b + a*sx - sy)
check2 = (b*sx + a*sx_sq - sxy)
return [round(a,4), round(b,4)]
# ะทะฐะฟัััะธะผ ััะฝะบัะธั ะธ ะทะฐะฟะธัะตะผ ะฟัะฐะฒะธะปัะฝัะต ะพัะฒะตัั
ab_us = Kramer_method(x_us,y_us)
a_us = ab_us[0]
b_us = ab_us[1]
print ' 33[1m' + ' 33[4m' + "ะะฟัะธะผะฐะปัะฝัะต ะทะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', a_us
print 'b =', b_us
print
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ะดะปั ะฟะพะดััะตัะฐ ััะผะผั ะบะฒะฐะดัะฐัะพะฒ ะพัะธะฑะพะบ
def errors_sq_Kramer_method(answers,x,y):
list_errors_sq = []
for i in range(len(x)):
err = (answers[0] + answers[1]*x[i] - y[i])**2
list_errors_sq.append(err)
return sum(list_errors_sq)
# ะทะฐะฟัััะธะผ ััะฝะบัะธั ะธ ะทะฐะฟะธัะตะผ ะทะฝะฐัะตะฝะธะต ะพัะธะฑะบะธ
error_sq = errors_sq_Kramer_method(ab_us,x_us,y_us)
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน" + ' 33[0m'
print error_sq
print
# ะทะฐะผะตัะธะผ ะฒัะตะผั ัะฐััะตัะฐ
# print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ัะฐััะตัะฐ ััะผะผั ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
# % timeit error_sq = errors_sq_Kramer_method(ab,x_us,y_us)
แแ แ แ แแแแแฆแแ:
แแกแ แ แแ, แแแแแแแแ แแแแคแแชแแแแขแแแแก แแแแจแแแแแแแแแ, แแแแแแแแแแ แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแ. แแแคแแแขแแแก แฐแแกแขแแแ แแแแแ แแแแแแแแ แกแฌแแ แ แฎแแแ แแแแแแแ แแแแคแแชแแแแขแแแแก แจแแกแแแแแแกแแ.
แ แแแ แแกแแแก แฎแแแแก แแแแ
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ะดะปั ัะพัะผะธัะพะฒะฐะฝะธั ะผะฐััะธะฒะฐ ัะฐัััะตัะฝัั
ะทะฝะฐัะตะฝะธะน ะฒััััะบะธ
def sales_count(ab,x,y):
line_answers = []
[line_answers.append(ab[0]+ab[1]*x[i]) for i in range(len(x))]
return line_answers
# ะฟะพัััะพะธะผ ะณัะฐัะธะบะธ
print 'ะััะธะบโ2 "ะัะฐะฒะธะปัะฝัะต ะธ ัะฐััะตัะฝัะต ะพัะฒะตัั"'
plt.plot(x_us,y_us,'o',color='green',markersize=16, label = '$True$ $answers$')
plt.plot(x_us, sales_count(ab_us,x_us,y_us), color='red',lw=4,
label='$Function: a + bx,$ $where$ $a='+str(round(ab_us[0],2))+',$ $b='+str(round(ab_us[1],2))+'$')
plt.xlabel('$Months$', size=16)
plt.ylabel('$Sales$', size=16)
plt.legend(loc=1, prop={'size': 16})
plt.show()
แแแแแ แแแ No2 โแกแฌแแ แ แแ แแแแแแแแ แแแกแฃแฎแแแโ
แแฅแแแ แจแแแแซแแแแ แแแฎแแ แแแแแฎแ แแก แแ แแคแแแ แงแแแแแ แแแแกแแแแก. แฉแแแแก แจแแแแฎแแแแแจแ, แแแกแแแ แ แแแแ แแแแจแแแแแแแแ แแ แแฅแขแแแฃแ แแแแจแแแแแแแแก แแ แแแแแแแงแแแแ, แแแแ แแ แแแแแแแแงแแคแแแแแ แฉแแแแก แชแแแแแกแแแงแแแ แแแแแก แแแแก แจแแกแแฎแแ, แแฃ แ แแแแแแแ แแฎแแกแแแแแแก แแแ แขแแแ แฌแ แคแแแ แ แแแ แแกแแแก แแแแขแแแแแ แจแแแแกแแแแแแแก แแแแแแแแแแฃแแแแแก แฌแแแก แแแแแ.
แแแแแฎแ แแก แแแแแ แแแแก แแแแ
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ะดะปั ัะพัะผะธัะพะฒะฐะฝะธั ะผะฐััะธะฒะฐ ะพัะบะปะพะฝะตะฝะธะน ะฒ ะฟัะพัะตะฝัะฐั
def error_per_month(ab,x,y):
sales_c = sales_count(ab,x,y)
errors_percent = []
for i in range(len(x)):
errors_percent.append(100*(sales_c[i]-y[i])/y[i])
return errors_percent
# ะฟะพัััะพะธะผ ะณัะฐัะธะบ
print 'ะัะฐัะธะบโ3 "ะัะบะปะพะฝะตะฝะธั ะฟะพ-ะผะตัััะฝะพ, %"'
plt.gca().bar(x_us, error_per_month(ab_us,x_us,y_us), color='brown')
plt.xlabel('Months', size=16)
plt.ylabel('Calculation error, %', size=16)
plt.show()
แแแแแ แแแ No3 โแแแแแฎแ แแแ, %โ
แแ แแ แแก แกแ แฃแแงแแคแแแ, แแแแ แแ แแแแแกแ แฃแแแ แแแแแแแแ.
แแแแฌแแ แแ แคแฃแแฅแชแแ, แ แแแแแแช แแแแคแแชแแแแขแแแแก แแแกแแแแแแแ ะธ แแงแแแแแก แแแแแแแแแแแก แแฃแแแแฃแคแ แ แแฃแกแขแแ, แฉแแแ แแแแฌแแ แ แแ แคแฃแแฅแชแแแก: แแ แแ แคแกแแแแแแแแแ แกแแฃแแ แแแขแ แแชแแก แแแแแงแแแแแแ (แแ แแฅแขแแแแจแ แแ แแ แแก แ แแแแแแแแแแฃแแ, แ แแแแแ แแ แแชแแกแ แแแแแแแแแแแ แ แแฃแแ แแ แแ แแกแขแแแแแฃแ แแ), แแแแ แ แแแขแ แแชแฃแแ แแแแขแแแแแแก แแแแแงแแแแแแ.
แแแแแแขแแแฃแ แ แแแแแฌแงแแแขแแก แแแแ (NumPy)
# ะดะปั ะฝะฐัะฐะปะฐ ะดะพะฑะฐะฒะธะผ ััะพะปะฑะตั ั ะฝะต ะธะทะผะตะฝัััะธะผัั ะทะฝะฐัะตะฝะธะตะผ ะฒ 1.
# ะะฐะฝะฝัะน ััะพะปะฑะตั ะฝัะถะตะฝ ะดะปั ัะพะณะพ, ััะพะฑั ะฝะต ะพะฑัะฐะฑะฐััะฒะฐัั ะพัะดะตะปัะฝะพ ะบะพัััะธัะตะฝั a
vector_1 = np.ones((x_np.shape[0],1))
x_np = table_zero[['x']].values # ะฝะฐ ะฒััะบะธะน ัะปััะฐะน ะฟัะธะฒะตะดะตะผ ะฒ ะฟะตัะฒะธัะฝัะน ัะพัะผะฐั ะฒะตะบัะพั x_np
x_np = np.hstack((vector_1,x_np))
# ะฟัะพะฒะตัะธะผ ัะพ, ััะพ ะฒัะต ัะดะตะปะฐะปะธ ะฟัะฐะฒะธะปัะฝะพ
print vector_1[0:3]
print x_np[0:3]
print '***************************************'
print
# ะฝะฐะฟะธัะตะผ ััะฝะบัะธั, ะบะพัะพัะฐั ะพะฟัะตะดะตะปัะตั ะทะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฟัะตะฒะดะพะพะฑัะฐัะฝะพะน ะผะฐััะธัั
def pseudoinverse_matrix(X, y):
# ะทะฐะดะฐะตะผ ัะฒะฝัะน ัะพัะผะฐั ะผะฐััะธัั ะฟัะธะทะฝะฐะบะพะฒ
X = np.matrix(X)
# ะพะฟัะตะดะตะปัะตะผ ััะฐะฝัะฟะพะฝะธัะพะฒะฐะฝะฝัั ะผะฐััะธัั
XT = X.T
# ะพะฟัะตะดะตะปัะตะผ ะบะฒะฐะดัะฐัะฝัั ะผะฐััะธัั
XTX = XT*X
# ะพะฟัะตะดะตะปัะตะผ ะฟัะตะฒะดะพะพะฑัะฐัะฝัั ะผะฐััะธัั
inv = np.linalg.pinv(XTX)
# ะทะฐะดะฐะตะผ ัะฒะฝัะน ัะพัะผะฐั ะผะฐััะธัั ะพัะฒะตัะพะฒ
y = np.matrix(y)
# ะฝะฐั
ะพะดะธะผ ะฒะตะบัะพั ะฒะตัะพะฒ
return (inv*XT)*y
# ะทะฐะฟัััะธะผ ััะฝะบัะธั
ab_np = pseudoinverse_matrix(x_np, y_np)
print ab_np
print '***************************************'
print
# ะฝะฐะฟะธัะตะผ ััะฝะบัะธั, ะบะพัะพัะฐั ะธัะฟะพะปัะทัะตั ะดะปั ัะตัะตะฝะธั ะผะฐััะธัะฝะพะต ััะฐะฒะฝะตะฝะธะต
def matrix_equation(X,y):
a = np.dot(X.T, X)
b = np.dot(X.T, y)
return np.linalg.solve(a, b)
# ะทะฐะฟัััะธะผ ััะฝะบัะธั
ab_np = matrix_equation(x_np,y_np)
print ab_np
แจแแแแแแ แแ แแแแคแแชแแแแขแแแแก แแแแแแแแแ แแแฎแแ แฏแฃแแ แแ แ ะธ , แฌแแ แแแแแแแแแ 3 แแแแแแแก แจแแกแแแแแแกแแ.
แแแแ แแแแแแแ แแจแแแแก แแ แแแก แแแแแกแแแแแแแแ
print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ัะฐััะตัะฐ ะบะพัััะธัะธะตะฝัะพะฒ ะฑะตะท ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฑะธะฑะปะธะพัะตะบะธ NumPy:" + ' 33[0m'
% timeit ab_us = Kramer_method(x_us,y_us)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ัะฐััะตัะฐ ะบะพัััะธัะธะตะฝัะพะฒ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฟัะตะฒะดะพะพะฑัะฐัะฝะพะน ะผะฐััะธัั:" + ' 33[0m'
%timeit ab_np = pseudoinverse_matrix(x_np, y_np)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ัะฐััะตัะฐ ะบะพัััะธัะธะตะฝัะพะฒ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะผะฐััะธัะฝะพะณะพ ััะฐะฒะฝะตะฝะธั:" + ' 33[0m'
%timeit ab_np = matrix_equation(x_np, y_np)
แแชแแ แ แ แแแแแแแแแก แแแแแชแแแแแแ, แฌแแ แแแแแแแก "แแแแ แแแฌแแ แแแ" แคแฃแแฅแชแแ, แ แแแแแแช แแแฃแแแแก แแแแคแแชแแแแขแแแก แแ แแแแ แแก แแแแแแแ.
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแแแฎแแแแแ แกแฎแแ แแแแแแ แแแแคแแชแแแแขแแแแก แแแกแแซแแแแแ ะธ .
แแ แแแแแแขแฃแแ แแแฆแแแ แแ
แแแ แแแ แ แแแจแ, แแแแแ แแแแแกแแแฆแแ แแ แ แ แแ แแก แแ แแแแแแขแ. แแแ แขแแแแ แ แแ แแแฅแแแ, แแ แแแแแแขแ แแ แแก แกแแแแแแขแ, แ แแแแแแช แแแฃแแแแแแก แคแฃแแฅแชแแแก แแแฅแกแแแแแฃแ แ แแ แแแก แแแแแ แแฃแแแแแแ. แแแแแ แแกแแแแก แแแแแแแแแ, แกแแแแช แแ แแแแแแขแ แแแแก, แกแแแแช แแ แแก แงแแแแแแ แชแแชแแแ แแกแแแ แแแแก แแฌแแแ แแแแแ. แแแแแ แแแแแแแแแก แจแแแฃแจแแแแแแกแแก แแแแฎแกแแแก, แ แแ แกแแแแแแแแแแจแ แฉแแแ แแแญแแ แแแแ แงแแแแแแ แชแแชแแแ แแแฆแแแ แแ แแแแกแแแแก, แ แแ แ แแช แจแแแซแแแแ แกแฌแ แแคแแ แแแแแฆแฌแแแ แแแแแแแก, แแแฃ แแแแแแฃแแก - แแแแแแก, แกแแแแช แคแฃแแฅแชแแ แแ แแแ แแแแ แแ แแชแแ แแแแ. แแ แแ แแก แฌแแ แแแแแฃแแ แแฅแแแแ แแฃแแแก แขแแแ. แแแแขแแ, แฉแแแ แแแญแแ แแแแ แแ แ แแ แแแแแแขแ, แแ แแแแ แแแขแแแ แแแแแแขแ. แแแขแแแ แแแแแแขแแก แแแกแแซแแแแแ แแฅแแแ แฃแแ แแแแ แฃแแแ แแแแแ แแแแแ แแ แแแแแแขแ -1 (แแแแฃแก แแ แแ).
แแแแแ แงแฃแ แแแฆแแแ แแแแแฅแชแแแ แแ แคแแฅแขแก, แ แแ แคแฃแแฅแชแแแก แจแแแซแแแแ แฐแฅแแแแแก แ แแแแแแแแ แแแแแแฃแแ แแ แแ แ-แแ แ แแแแแแแจแ แฅแแแแแ แจแแแแแแแแแแแฃแแ แแแแแ แแแแแก แแแแแงแแแแแแ, แฉแแแ แแแ แแแแแแแ แกแฎแแ แแแแแแฃแแก, แ แแแแแแช แจแแแซแแแแ แแงแแก แฃแคแ แ แแแแแแ แแแแ แ แแแแแแแ. แแแแ แแแแแกแแแแแ, แแก แฉแแแแแแแก แกแแคแ แแฎแแก แแ แฌแแ แแแแแแแแก! แฉแแแแก แจแแแแฎแแแแแจแ แกแแฅแแ แแแแฅแแก แแ แ แแแแแแฃแแแแ, แฉแแแแ แคแฃแแฅแชแแแแแ แแแแแแแแแแ แ แแ แแคแแแแ แแ แแก แ แแแฃแแแ แฃแแ แแแ แแแแแ. แแ แ แแแแ แช แงแแแแแ แแแ แแแ แฃแแแ แแแชแแแแ แฉแแแแ แกแแแแแก แแแแแแแขแแแแก แแฃแ แกแแแแ, แแแ แแแแแแก แแฅแแก แแฎแแแแ แแ แแ แแแแแแฃแแ.
แแแก แจแแแแแ แ แแช แแแแแ แแแแแ, แ แแขแแ แแแญแแ แแแแแแ แแ แแแแแแขแ แแ แแกแแแ, แ แแ แแ แแแแแแขแ แแ แแก แกแแแแแแขแ, แแแฃ แแแฅแขแแ แ แแแชแแแฃแแ แแแแ แแแแแขแแแแ, แ แแแแแแแช แแฃแกแขแแ แแแแแ แแแแคแแชแแแแขแแแแ. ะธ แฉแแแ แจแแแแแซแแแ แแแแแแฎแแ แชแแแแแ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ.
แแแฌแงแแแแแแ แแ แแแแแแแแแ แแฎแแแแ แ แแแแแแแแ แฌแแแแแแแแแแก แฌแแแแแฎแแแก แแแฆแแแ แแแก แแแแแ แแแแแก แจแแกแแฎแแ:
- แคแกแแแแ แจแแแแฎแแแแแแ แฌแแกแแ แแแแแกแแแฆแแ แแแ แแแแคแแชแแแแขแแแแก แแแแ แแแแแขแแแก ะธ . แฉแแแแก แแแแแแแแจแ แฉแแแ แแแแแกแแแฆแแ แแแ แแแแคแแชแแแแขแแแก แแฃแแแก แแแฎแแแแแแ. แแก แฉแแแฃแแแแ แแแ แแ แแฅแขแแแแ, แแแแ แแ แแแแแแฃแ แจแแแแฎแแแแแก แจแแแซแแแแ แฐแฅแแแแแก แกแแแฃแแแ แ แแ แแฅแขแแแ.
- แแแแ แแแแแขแแแแ แแแแแแแแแแ 1-แแ แ แแแแก แแแฌแแแแแ แแแ แฌแแ แแแแแฃแแแก แแแแจแแแแแแแ แฌแแ แขแแแจแ . แแกแ แ แแ, แแฃ แฌแแ แแแแแฃแแ แแแแแแแแแ, แแแจแแ แคแฃแแฅแชแแ แแแ แแแแ. แแแจแแกแแแแแ, แฌแแ แแแแแฃแแแก แแแแจแแแแแแแแก แแแแแแแแแแ, แฉแแแ แแแแแแแแ แแ แแแก แกแแแแ แแกแแแ แ แแแแแ แแฃแแแแแ, แแแฃ แแแฆแแแกแแแแก แแแแแ แแฃแแแแแ. แแฃ แฌแแ แแแแแฃแแ แฃแแ แงแแคแแแแ, แแแจแแ แคแฃแแฅแชแแ แแ แแแแแแขแจแ แแชแแ แแแแ แแ แฌแแ แแแแแฃแแแก แแแแจแแแแแแแแก แแแแแแแแแแ แแแแแแแแ แ แแแฆแแแ แแแก แแแแแ แแฃแแแแแ.
- แแแแแแแแฃแ แแแแ แแชแแแก แแแกแ แฃแแแแ แแแแ แแแแแขแแแ แแ แแแ : แแแแแแแแแแ แแแฌแแแแแ แแแ แฌแแ แแแแแฃแแแก แแแแจแแแแแแแ แฌแแ แขแแแจแ .
- แแแแกแแแแแก, แ แแ แแ แแแแแฎแขแแ แแแแแแฃแแแ แแ แแ แแแคแ แแแแแ แฆแ แแ แกแแแ แชแแจแ, แแฃแชแแแแแแแแ แแแแแฏแแก แแแแแก แแแงแแแแแ แแแฆแแแ แแแก แแแแแ แแฃแแแแแ. แแแแแแแ, แจแแแแซแแแแ แแแฌแแ แแ แแแแแ แกแขแแขแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแแงแแแแ แแแแแฏแ แกแฌแแ แแ แแ แ แแแแ แจแแชแแแแแ แแแ แแแฆแแแ แแแก แแ แแชแแกแจแ, แ แแแ แจแแแชแแ แแแก แแแแแแแแแแ แฎแแ แฏแแแ. แแแแ แแ แแฎแแ แฌแแ แแแแแ แแแแกแฎแแแแแแฃแแ แแแแแแแแ แแแแฅแแก แแ แกแแคแแฎแฃแ แแก แแแแแก แแแแแแงแแ แแแ แกแแแแชแแแแ แ แแแแแแแก โแแแแแกโ แแ, แ แแแแ แช แแแแแแแ, แแแแแ แแฃแแแ.
- แแ แแฎแแ แฉแแแ แแแชแแแฃแแ แแแแ แแแแแขแแแแแแ แแแ แ ะธ แแแแแแแแแแ แฌแแ แแแแแฃแแแแแก แแแแจแแแแแแแแแ, แแแแแฆแแแ แแฎแแ แแแแ แแแแแขแแแก ะธ . แฉแแแ แแแแแแ แจแแแแแ แแแแแฏแก (แแแแแแแแแแก), แฃแแแ แแแแแแแแแแ แแแแ แแแแแขแแแแแแ. แแกแ แ แแ, แชแแแแ แแกแแ แแ แแกแแ แแฌแงแแแ, แกแแแแ แแ แแแแฆแฌแแแ แกแแญแแ แ แแแแแแ แแแแชแแ.
แงแแแแ! แแฎแแ แฉแแแ แแแแ แแแ แ แฌแแแแแแ แแแ แแแแแก แแฎแ แแแแก แงแแแแแแ แฆแ แแ แฎแแแแแก แแแกแแซแแแแแ. แฒแแแแฌแงแแ.
แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแแแ
# ะฝะฐะฟะธัะตะผ ััะฝะบัะธั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ะฑะตะท ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฑะธะฑะปะธะพัะตะบะธ NumPy.
# ะคัะฝะบัะธั ะฝะฐ ะฒั
ะพะด ะฟัะธะฝะธะผะฐะตั ะดะธะฐะฟะฐะทะพะฝั ะทะฝะฐัะตะฝะธะน x,y, ะดะปะธะฝั ัะฐะณะฐ (ะฟะพ ัะผะพะปัะฐะฝะธั=0,1), ะดะพะฟัััะธะผัั ะฟะพะณัะตัะฝะพััั(tolerance)
def gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001):
# ััะผะผะฐ ะทะฝะฐัะตะฝะธะน (ะฒัะต ะผะตัััะฐ)
sx = sum(x_us)
# ััะผะผะฐ ะธััะธะฝะฝัั
ะพัะฒะตัะพะฒ (ะฒััััะบะฐ ะทะฐ ะฒะตัั ะฟะตัะธะพะด)
sy = sum(y_us)
# ััะผะผะฐ ะฟัะพะธะทะฒะตะดะตะฝะธั ะทะฝะฐัะตะฝะธะน ะฝะฐ ะธััะธะฝะฝัะต ะพัะฒะตัั
list_xy = []
[list_xy.append(x_us[i]*y_us[i]) for i in range(len(x_us))]
sxy = sum(list_xy)
# ััะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะทะฝะฐัะตะฝะธะน
list_x_sq = []
[list_x_sq.append(x_us[i]**2) for i in range(len(x_us))]
sx_sq = sum(list_x_sq)
# ะบะพะปะธัะตััะฒะพ ะทะฝะฐัะตะฝะธะน
num = len(x_us)
# ะฝะฐัะฐะปัะฝัะต ะทะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ, ะพะฟัะตะดะตะปะตะฝะฝัะต ะฟัะตะฒะดะพัะปััะฐะนะฝัะผ ะพะฑัะฐะทะพะผ
a = float(random.uniform(-0.5, 0.5))
b = float(random.uniform(-0.5, 0.5))
# ัะพะทะดะฐะตะผ ะผะฐััะธะฒ ั ะพัะธะฑะบะฐะผะธ, ะดะปั ััะฐััะฐ ะธัะฟะพะปัะทัะตะผ ะทะฝะฐัะตะฝะธั 1 ะธ 0
# ะฟะพัะปะต ะทะฐะฒะตััะตะฝะธั ัะฟััะบะฐ ััะฐััะพะฒัะต ะทะฝะฐัะตะฝะธั ัะดะฐะปะธะผ
errors = [1,0]
# ะทะฐะฟััะบะฐะตะผ ัะธะบะป ัะฟััะบะฐ
# ัะธะบะป ัะฐะฑะพัะฐะตั ะดะพ ัะตั
ะฟะพั, ะฟะพะบะฐ ะพัะบะปะพะฝะตะฝะธะต ะฟะพัะปะตะดะฝะตะน ะพัะธะฑะบะธ ััะผะผั ะบะฒะฐะดัะฐัะพะฒ ะพั ะฟัะตะดัะดััะตะน, ะฝะต ะฑัะดะตั ะผะตะฝััะต tolerance
while abs(errors[-1]-errors[-2]) > tolerance:
a_step = a - l*(num*a + b*sx - sy)/num
b_step = b - l*(a*sx + b*sx_sq - sxy)/num
a = a_step
b = b_step
ab = [a,b]
errors.append(errors_sq_Kramer_method(ab,x_us,y_us))
return (ab),(errors[2:])
# ะทะฐะฟะธัะตะผ ะผะฐััะธะฒ ะทะฝะฐัะตะฝะธะน
list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001)
print ' 33[1m' + ' 33[4m' + "ะะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', round(list_parametres_gradient_descence[0][0],3)
print 'b =', round(list_parametres_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
print round(list_parametres_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ะะพะปะธัะตััะฒะพ ะธัะตัะฐัะธะน ะฒ ะณัะฐะดะธะตะฝัะฝะพะผ ัะฟััะบะต:" + ' 33[0m'
print len(list_parametres_gradient_descence[1])
print
แฉแแแ แฉแแแงแแแแแแ แแแ แแแแแก แแฎแ แแแแก แแแแแจแ แแ แแฅ แแแแแแแ แแแแคแแชแแแแขแแแแก แงแแแแ แแแแแ แแแแจแแแแแแแ ะธ , แ แแช แแฃแกแขแแ แแแกแแแแแแแแ แแงแ.
แแแแ แแแแแ แแ แแฎแแ แฉแแแงแแแแแแ, แแฎแแแแ แแแฏแแ แแ แฉแแแแ แฆแ แแ แแฆแแแก แแแแฅแแแ แจแแแแกแแแ แกแฎแแ แขแแฅแแแแแแแแแแ, แแแ แซแแ แแแแแแแแแแแ. แแฃแแแ.
แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแแแ (NumPy)
# ะฟะตัะตะด ัะตะผ ะพะฟัะตะดะตะปะธัั ััะฝะบัะธั ะดะปั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฑะธะฑะปะธะพัะตะบะธ NumPy,
# ะฝะฐะฟะธัะตะผ ััะฝะบัะธั ะพะฟัะตะดะตะปะตะฝะธั ััะผะผั ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ัะฐะบะถะต ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ NumPy
def error_square_numpy(ab,x_np,y_np):
y_pred = np.dot(x_np,ab)
error = y_pred - y_np
return sum((error)**2)
# ะฝะฐะฟะธัะตะผ ััะฝะบัะธั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฑะธะฑะปะธะพัะตะบะธ NumPy.
# ะคัะฝะบัะธั ะฝะฐ ะฒั
ะพะด ะฟัะธะฝะธะผะฐะตั ะดะธะฐะฟะฐะทะพะฝั ะทะฝะฐัะตะฝะธะน x,y, ะดะปะธะฝั ัะฐะณะฐ (ะฟะพ ัะผะพะปัะฐะฝะธั=0,1), ะดะพะฟัััะธะผัั ะฟะพะณัะตัะฝะพััั(tolerance)
def gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001):
# ััะผะผะฐ ะทะฝะฐัะตะฝะธะน (ะฒัะต ะผะตัััะฐ)
sx = float(sum(x_np[:,1]))
# ััะผะผะฐ ะธััะธะฝะฝัั
ะพัะฒะตัะพะฒ (ะฒััััะบะฐ ะทะฐ ะฒะตัั ะฟะตัะธะพะด)
sy = float(sum(y_np))
# ััะผะผะฐ ะฟัะพะธะทะฒะตะดะตะฝะธั ะทะฝะฐัะตะฝะธะน ะฝะฐ ะธััะธะฝะฝัะต ะพัะฒะตัั
sxy = x_np*y_np
sxy = float(sum(sxy[:,1]))
# ััะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะทะฝะฐัะตะฝะธะน
sx_sq = float(sum(x_np[:,1]**2))
# ะบะพะปะธัะตััะฒะพ ะทะฝะฐัะตะฝะธะน
num = float(x_np.shape[0])
# ะฝะฐัะฐะปัะฝัะต ะทะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ, ะพะฟัะตะดะตะปะตะฝะฝัะต ะฟัะตะฒะดะพัะปััะฐะนะฝัะผ ะพะฑัะฐะทะพะผ
a = float(random.uniform(-0.5, 0.5))
b = float(random.uniform(-0.5, 0.5))
# ัะพะทะดะฐะตะผ ะผะฐััะธะฒ ั ะพัะธะฑะบะฐะผะธ, ะดะปั ััะฐััะฐ ะธัะฟะพะปัะทัะตะผ ะทะฝะฐัะตะฝะธั 1 ะธ 0
# ะฟะพัะปะต ะทะฐะฒะตััะตะฝะธั ัะฟััะบะฐ ััะฐััะพะฒัะต ะทะฝะฐัะตะฝะธั ัะดะฐะปะธะผ
errors = [1,0]
# ะทะฐะฟััะบะฐะตะผ ัะธะบะป ัะฟััะบะฐ
# ัะธะบะป ัะฐะฑะพัะฐะตั ะดะพ ัะตั
ะฟะพั, ะฟะพะบะฐ ะพัะบะปะพะฝะตะฝะธะต ะฟะพัะปะตะดะฝะตะน ะพัะธะฑะบะธ ััะผะผั ะบะฒะฐะดัะฐัะพะฒ ะพั ะฟัะตะดัะดััะตะน, ะฝะต ะฑัะดะตั ะผะตะฝััะต tolerance
while abs(errors[-1]-errors[-2]) > tolerance:
a_step = a - l*(num*a + b*sx - sy)/num
b_step = b - l*(a*sx + b*sx_sq - sxy)/num
a = a_step
b = b_step
ab = np.array([[a],[b]])
errors.append(error_square_numpy(ab,x_np,y_np))
return (ab),(errors[2:])
# ะทะฐะฟะธัะตะผ ะผะฐััะธะฒ ะทะฝะฐัะตะฝะธะน
list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001)
print ' 33[1m' + ' 33[4m' + "ะะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', round(list_parametres_gradient_descence[0][0],3)
print 'b =', round(list_parametres_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
print round(list_parametres_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ะะพะปะธัะตััะฒะพ ะธัะตัะฐัะธะน ะฒ ะณัะฐะดะธะตะฝัะฝะพะผ ัะฟััะบะต:" + ' 33[0m'
print len(list_parametres_gradient_descence[1])
print
แแแแคแแชแแแแขแแแแก แแแแจแแแแแแแแแ ะธ แจแแฃแชแแแแแ.
แแแแฎแแ, แ แแแแ แจแแแชแแแแ แจแแชแแแแ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแ แแก, แแแฃ แ แแแแ แแชแแแแแแแ แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแ แงแแแแ แกแแคแแฎแฃแ แแ.
แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแแแแก แแแแแกแแฎแแแก แแแแ
print 'ะัะฐัะธะบโ4 "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ะฟะพ-ัะฐะณะพะฒะพ"'
plt.plot(range(len(list_parametres_gradient_descence[1])), list_parametres_gradient_descence[1], color='red', lw=3)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
แแ แแคแแแ No4 โแแ แแแแแแขแฃแแ แแแฆแแแ แแแก แแ แแก แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแโ
แแ แแคแแแแ แแฎแแแแแ, แ แแ แงแแแแแ แแแแแฏแแก แแแแแแแแแกแแก แจแแชแแแแ แแชแแ แแแแ แแ แแแ แแแแฃแแ แ แแแแแแแแแก แแแแแแ แแแแก แจแแแแแ แแแแแแ แแแแแ แแแแฅแแแก แฐแแ แแแแแขแแแฃแ แฎแแแก.
แแ แแแแแก, แแแแแ แจแแแแคแแกแแ แแแแกแฎแแแแแแ แแแแแก แจแแกแ แฃแแแแแก แแ แแก:
แแแแ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแแแแแแแแก แแ แแแก แแแกแแแแแแแ
print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ะฑะตะท ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฑะธะฑะปะธะพัะตะบะธ NumPy:" + ' 33[0m'
%timeit list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฑะธะฑะปะธะพัะตะบะธ NumPy:" + ' 33[0m'
%timeit list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001)
แจแแกแแซแแแ, แ แแฆแแชแแก แแ แแกแฌแแ แแ แแแแแแแแ, แแแแ แแ แแกแแ แแก แแ แแก แแแ แขแแแ โแกแแฎแแจแ แแแฌแแ แแแโ แคแฃแแฅแชแแ, แ แแแแแแช แแ แแงแแแแแก แแแแแแแแแแแก แแฃแแแ แแฆแแแแขแแแ แแแแแแแแแแแก แแแแแงแแแแแแ แคแฃแแฅแชแแแก แแแแแแแแแก แแ แแก แแฃแแแ.
แแแแ แแ แฉแแแ แแ แแแแแแแ แ, แแ แแแแ แแแแแแแแ แ แแแ แขแแแ แฌแ แคแแแ แ แแแ แแกแแแก แแแแขแแแแแแก แแแแฎแกแแแก แแแแแ แแ แแ แกแแแแขแแ แแกแ แฎแแ แฎแแก แจแแกแฌแแแแแแ. แฒจแแฎแแแแ แ!
แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ
แแแแกแแแแแก, แ แแ แกแฌแ แแคแแ แแแแแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแแ แแแฆแแแ แแแก แแแฅแแแแแแแก แแ แแแชแแแ, แฃแแฏแแแแกแแ แแแแแกแแแฆแแ แแ แแแกแ แแแแกแฎแแแแแแแแ แฉแแแฃแแแแ แแแ แแ แแแแแแขแฃแ แ แฌแแ แแแจแแแแกแแแ. แฉแแแ, แแ แแแแแแขแฃแแ แฌแแ แแแจแแแแก แจแแแแฎแแแแแจแ, แฌแแ แแแแแฃแแแแแก แแแแขแแแแแแแจแ ะธ แแแแแแงแแแ แแแแฃแจแจแ แแ แกแแแฃแแ แงแแแแ แแแฎแแกแแแแแแแแก แแแแจแแแแแแแแแแก แฏแแแแแ แแ แญแแจแแแ แแขแ แแแกแฃแฎแแแ (แแแฃ แงแแแแ แฏแแแ ะธ ). แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแแ แฌแแ แแแจแแแแก แแ แแก แฉแแแ แแ แแแแแแแงแแแแแ แแแแฃแจแจแ แแ แกแแแฃแ แงแแแแ แแแแจแแแแแแแแก, แแ แแแแ แคแกแแแแ แจแแแแฎแแแแแ แแแ แฉแแแ แแแ แแ แฌแแแแแฃแ แแแแฃแจแแก แแแแแฅแกแก แแ แแแแแแแงแแแแแ แแแก แแแแจแแแแแแแแแก.
แแแแแแแแแ, แแฃ แแแแแฅแกแ แแแแแกแแแฆแแ แแแ, แ แแแแ แช แแแแแ แ 3 (แกแแแ), แแแจแแ แแแฆแแแ แแแแจแแแแแแแแแก ะธ , แจแแแแแ แแแแจแแแแแแแแแก แแแแแชแแแแแ แฌแแ แแแแแฃแ แแแแขแแแแแแแก แแ แแแแแกแแแฆแแ แแแ แแฎแแ แแแแ แแแแแขแแแก. แจแแแแแ, แแแแ แแแแแขแแแแก แแแแแแแแก แจแแแแแ, แฉแแแ แแแแแ แคแกแแแแ แจแแแแฎแแแแแ แแแแแกแแแฆแแ แแแ แแแแฃแจแแก แแแแแฅแกแก, แแชแแแแ แแแแแฅแกแแก แจแแกแแแแแแกแ แแแแจแแแแแแแแแแก แแแฌแแแแแ แแ แแแคแแ แแแชแแแแฃแ แแแแขแแแแแแแก แแ แแแแแกแแแฆแแ แแแ แแแแ แแแแแขแแแก แแฎแแแ แแแแ. ะธ แแ แ.แจ. แกแแแแ แแแแแแ แแแแชแแ แแ แแแฎแแแแ แแฌแแแแ. แแ แแ แจแแฎแแแแแ, แจแแแซแแแแ แฉแแแแแก, แ แแ แแก แกแแแ แแแ แแ แแฃแจแแแแก, แแแแ แแ แแกแแ. แแแ แแแแแ, แแฆแกแแแแจแแแแแ, แ แแ แจแแชแแแแ แงแแแแ แแแแแฏแแ แแ แแชแแ แแแแ, แแแแ แแ แขแแแแแแชแแ แแแแแแแแแ แแ แแก.
แ แ แฃแแแ แแขแแกแแแแแ แแฅแแก แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแแ แแแฆแแแ แแก แฉแแแฃแแแแ แแแแแ แจแแแแ แแแแ? แแฃ แฉแแแแ แแแแฃแจแแก แแแแ แซแแแแแ แแแแแ แแ แแแแแแแ แแแแแแแกแแแแ แแแแจแแแแแแแแ, แแแจแแ แแแแ แแ แฃแคแ แ แแแแแแแ, แแแฅแแแ, แจแแแแฎแแแแแแ แแแแกแ แแแแแแแแก แแแแฃแจแแแแแ, แแแแ แ แแแแแแแ แแแแฃแจแแก. แกแฌแแ แแ แแฅ แแแฅแแแแแแก แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ. แฉแแแแก แจแแแแฎแแแแแจแ, แ แ แแฅแแ แฃแแแ, แแแ แแแแกแฎแแแแแแแก แแแ แจแแแแแฉแแแแ.
แแแแแ แจแแแฎแแแแ แแแแก.
แแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแกแแแแก
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ััะพั
.ะณัะฐะด.ัะฐะณะฐ
def stoch_grad_step_usual(vector_init, x_us, ind, y_us, l):
# ะฒัะฑะธัะฐะตะผ ะทะฝะฐัะตะฝะธะต ะธะบั, ะบะพัะพัะพะต ัะพะพัะฒะตัััะฒัะตั ัะปััะฐะนะฝะพะผั ะทะฝะฐัะตะฝะธั ะฟะฐัะฐะผะตััะฐ ind
# (ัะผ.ั-ัะธั stoch_grad_descent_usual)
x = x_us[ind]
# ัะฐัััะธััะฒัะฐะตะผ ะทะฝะฐัะตะฝะธะต y (ะฒััััะบั), ะบะพัะพัะฐั ัะพะพัะฒะตัััะฒัะตั ะฒัะฑัะฐะฝะฝะพะผั ะทะฝะฐัะตะฝะธั x
y_pred = vector_init[0] + vector_init[1]*x_us[ind]
# ะฒััะธัะปัะตะผ ะพัะธะฑะบั ัะฐััะตัะฝะพะน ะฒััััะบะธ ะพัะฝะพัะธัะตะปัะฝะพ ะฟัะตะดััะฐะฒะปะตะฝะฝะพะน ะฒ ะฒัะฑะพัะบะต
error = y_pred - y_us[ind]
# ะพะฟัะตะดะตะปัะตะผ ะฟะตัะฒัั ะบะพะพัะดะธะฝะฐัั ะณัะฐะดะธะตะฝัะฐ ab
grad_a = error
# ะพะฟัะตะดะตะปัะตะผ ะฒัะพััั ะบะพะพัะดะธะฝะฐัั ab
grad_b = x_us[ind]*error
# ะฒััะธัะปัะตะผ ะฝะพะฒัะน ะฒะตะบัะพั ะบะพัััะธัะธะตะฝัะพะฒ
vector_new = [vector_init[0]-l*grad_a, vector_init[1]-l*grad_b]
return vector_new
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ััะพั
.ะณัะฐะด.ัะฟััะบะฐ
def stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800):
# ะดะปั ัะฐะผะพะณะพ ะฝะฐัะฐะปะฐ ัะฐะฑะพัั ััะฝะบัะธะธ ะทะฐะดะฐะดะธะผ ะฝะฐัะฐะปัะฝัะต ะทะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ
vector_init = [float(random.uniform(-0.5, 0.5)), float(random.uniform(-0.5, 0.5))]
errors = []
# ะทะฐะฟัััะธะผ ัะธะบะป ัะฟััะบะฐ
# ัะธะบะป ัะฐััะธัะฐะฝ ะฝะฐ ะพะฟัะตะดะตะปะตะฝะฝะพะต ะบะพะปะธัะตััะฒะพ ัะฐะณะพะฒ (steps)
for i in range(steps):
ind = random.choice(range(len(x_us)))
new_vector = stoch_grad_step_usual(vector_init, x_us, ind, y_us, l)
vector_init = new_vector
errors.append(errors_sq_Kramer_method(vector_init,x_us,y_us))
return (vector_init),(errors)
# ะทะฐะฟะธัะตะผ ะผะฐััะธะฒ ะทะฝะฐัะตะฝะธะน
list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800)
print ' 33[1m' + ' 33[4m' + "ะะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ะะพะปะธัะตััะฒะพ ะธัะตัะฐัะธะน ะฒ ััะพั
ะฐััะธัะตัะบะพะผ ะณัะฐะดะธะตะฝัะฝะพะผ ัะฟััะบะต:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
แฉแแแ แงแฃแ แแแฆแแแแ แแฃแงแฃแ แแแ แแแแคแแชแแแแขแแแก แแ แแแแก แแแแแแแแ แแแแฎแแแแ "แ แแแแ แจแแแซแแแแ แแงแแก แแก?" แฉแแแ แแแแแฆแแ แกแฎแแ แแแแคแแชแแแแขแแแแก แแแแจแแแแแแแแแ ะธ . แแฅแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแแ แแแฆแแแ แแแ แแแแแ แฃแคแ แ แแแขแแแแแฃแ แ แแแ แแแแขแ แแแ แแแแขแแแแแแกแแแแก? แกแแแฌแฃแฎแแ แแ แแ แ. แกแแแแแ แแกแแ แแแแแแฎแแแแ แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแก แแ แแแแแแแฎแแ, แ แแ แแแแคแแชแแแแขแแแแก แแฎแแแ แแแแจแแแแแแแแแแ, แจแแชแแแแ แฃแคแ แ แแแแแ. แฉแแแ แแ แแฉแฅแแ แแแ แกแแกแแฌแแ แแแแแแก. แแแแแ แแแแจแแแแ แจแแชแแแแแก แชแแแแแแแแก แแ แแคแแแ.
แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแแก แแแฆแแแ แแจแ แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแแก แแแแแกแแฎแแแก แแแแ
print 'ะัะฐัะธะบ โ5 "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ะฟะพ-ัะฐะณะพะฒะพ"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
แแ แแคแแแ No5 โแแแแแฎแ แแแแก แแแแแ แแขแแก แฏแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแ แแกโ
แแแแ แแแก แ แแ แแฃแงแฃแ แแ, แงแแแแแคแแ แ แแแแแก แแแแแแแ แแแแแ แแ แแฎแแ แงแแแแแคแแ แก แแแแแแแกแฌแแ แแแ.
แแแ แ แ แ แแแฎแแ? แแแฎแแ แจแแแแแแ. แ แแแแกแแช แฉแแแ แจแแแแฎแแแแแ แแแ แฉแแแ แแแแก, แแแจแแ แกแฌแแ แแ แแ แฉแแฃแแ แแแแกแแแแก แฉแแแแ แแแแแ แแแแ แชแแแแแแก แจแแแแชแแ แแก แจแแชแแแแ แจแแแแกแแแแแก แแแแแแแแแจแ. แจแแแแแ แแแ แฉแแแ แกแฎแแ แแแแก แแ แแแแแแ แแแ แแแแแแแแแก, แแแแ แแ แแแแชแแ แแแ แจแแชแแแแแก แแแแ แ แจแแ แฉแแฃแแ แแแแกแแแแก. แแฎแแ แแแฎแกแแแแแ, แ แแ แแแ แแแแ แแ แ แแแ แแแแจแแแแแแแแแ แแแแแฎแ แแก แแแ แขแแแ แฌแ แคแแแ แ แแแ แแกแแแก แแแแขแแแแแแก แฎแแแก. แแก แแแจแแแแก, แ แแ แแ แแ แ แแแแแแ แ แแแแแแแแก แแ แฉแแแแกแแก, แแแแแแฃแแ แแแแแแแแก แจแแชแแแแแก แจแแแชแแ แแแแ, แฉแแแแ แแแแแ แแแแ แกแแ แแแแฃแแแ แแ แแแก แจแแชแแแแแก แแแแแ แแแแฃแจแแกแแแแก. แแกแ แ แแ, แ แ แฃแแแ แแแแแแแแก? แแแกแฃแฎแ แแแ แขแแแแ: แแฅแแแ แฃแแแ แจแแแแชแแ แแ แแแฆแแแ แแแก แกแแคแแฎแฃแ แ. แงแแแแแแแ แแแแก แจแแแแแ, แแแฆแแแ แแแก แกแแคแแฎแฃแ แแก แจแแแชแแ แแแแ, แจแแชแแแแ แแกแแแ แจแแแฉแแ แแแก แแแแแ แแ แฅแแแแแ "แฎแขแฃแแแแก". แฃแคแ แ แกแฌแแ แแ, "แแแแแฎแขแแแแก" แจแแชแแแแ แแ แจแแฉแแ แแแแ, แแแแ แแ แแกแ แกแฌแ แแคแแ แแ แแแแแแแแแก :) แแแแแ แจแแแแแแฌแแแ.
แแแแ SGD-แแก แแแกแแจแแแแแ แแชแแ แ แแแขแแแแ
# ะทะฐะฟัััะธะผ ััะฝะบัะธั, ัะผะตะฝััะธะฒ ัะฐะณ ะฒ 100 ัะฐะท ะธ ัะฒะตะปะธัะธะฒ ะบะพะปะธัะตััะฒะพ ัะฐะณะพะฒ ัะพะพัะฒะตััะฒัััะต
list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000)
print ' 33[1m' + ' 33[4m' + "ะะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ะะพะปะธัะตััะฒะพ ะธัะตัะฐัะธะน ะฒ ััะพั
ะฐััะธัะตัะบะพะผ ะณัะฐะดะธะตะฝัะฝะพะผ ัะฟััะบะต:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
print 'ะัะฐัะธะบ โ6 "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ะฟะพ-ัะฐะณะพะฒะพ"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
แแ แแคแแแ No6 โแแแแแฎแ แแแแก แแแแแ แแขแแก แฏแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแ แแก (80 แแแแกแ แแแแแฏแ)โ
แแแแคแแชแแแแขแแแ แแแฃแแฏแแแแกแแ, แแแแ แแ แแแแแช แแ แแ แแก แแแแแแฃแ แ. แฐแแแแแแขแฃแ แแ, แแแแก แแแแแกแฌแแ แแแ แจแแกแแซแแแแแแแ แแ แแแแ. แฉแแแ แแแ แฉแแแ, แแแแแแแแแ, แแแแ 1000 แแแแแแ แแแแจแ แแ แแแแคแแชแแแแขแแแแก แแแแจแแแแแแแแแก, แ แแแแแแแช แแแจแแแแฃแแแ แแแแแแแแฃแ แ แจแแชแแแแ. แแแ แแแแแ, แแแแกแแแแแก แฉแแแ แแกแแแ แแแแแแฌแแแก แแแแแ แแแแคแแชแแแแขแแแแก แแแแจแแแแแแแแแแก แฉแแฌแแ แ. แฉแแแ แแแแก แแ แแแแแแแแแแ, แแ แแแแ แงแฃแ แแแฆแแแแก แแแแแฅแชแแแ แแ แแคแแแก. แแแ แแแแแแงแฃแ แแแ แแแฃแแ แแ แจแแชแแแแ, แ แแแแ แช แฉแแแก, แแแแแแ แแ แแชแแ แแแแ. แกแแแแแแแแแแจแ แแก แกแแแแ แแแแก แแ แจแแแกแแแแแแแ. แแแแแ แจแแแฎแแแแ แแแ แแแ 1000 แแแแแแ แแแแก แแ แจแแแแแแ แแ แแกแแแ แแแแ.
แแแแ SGD แแแแแ แแแแกแแแแก (แแแ แแแแ 1000 แแแแแฏแ)
print 'ะัะฐัะธะบ โ7 "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ะฟะพ-ัะฐะณะพะฒะพ. ะะตัะฒัะต 1000 ะธัะตัะฐัะธะน"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1][:1000])),
list_parametres_stoch_gradient_descence[1][:1000], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
print 'ะัะฐัะธะบ โ7 "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน ะฟะพ-ัะฐะณะพะฒะพ. ะะพัะปะตะดะฝะธะต 1000 ะธัะตัะฐัะธะน"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1][-1000:])),
list_parametres_stoch_gradient_descence[1][-1000:], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
แแ แแคแแแ No7 โSGD แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแ (แแแ แแแแ 1000 แแแแแฏแ)โ
แแ แแคแแแ No8 โSGD แแแแแ แแขแฃแแ แแแแแฎแ แแแแก แฏแแแ (แแแแ 1000 แแแแแฏแ)โ
แแแฆแแแ แแแก แแแกแแฌแงแแกแจแแแ แแแแฉแแแแ แชแแแแแแแแแก แกแแแแแแ แแ แแแแแ แแแแ แแ แแแแแแ แจแแแชแแ แแแแก. แแแแ แแแแแแ แแแแแจแ แฉแแแ แแฎแแแแแ, แ แแ แจแแชแแแแ แแแแแก 1,475 แแแแจแแแแแแแแก แแ แแแแแ แแ แแ แแแแแ แแ แแแแแแ แ แแแแแแขแจแ แแ แแแขแแแแแฃแ แแแแจแแแแแแแแกแแช แแ แฃแขแแแแแแ, แแแแ แแ แจแแแแแ แแแแแช แแแ แแแแ... แแแแแแ แแ, แจแแแแซแแแแ แแแฌแแ แแ แแแแจแแแแแแแแแ แแแแคแแชแแแแขแแแ ะธ , แแ แจแแแแแ แจแแแ แฉแแแ แแกแแแ, แ แแแแแแจแแช แจแแชแแแแ แแแแแแแแฃแ แแ. แแฃแแชแ, แฉแแแ แฃแคแ แ แกแแ แแแแฃแแ แแ แแแแแแ แแแฅแแแแ: 80 แแแแกแ แแแแแฏแแก แแแแแแแแ (แแฎ. แแแแ) แแแแแแฌแแ, แ แแ แแแแจแแแแแแแแแ แแแขแแแแแฃแ แแแ แแแแฎแแแแแฃแแแงแ. แแ แแก แฃแแแ แแฌแแแแแฆแแแแแแแ แแแแแแแแแก แแ แแแก แแแแแแแแก แแแแแก แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแ แแ แแแแแแขแแแ แจแแแแ แแแแ. แ แแกแ แแแแแกแฌแแ แแแ แแ แแแฃแแฏแแแแกแแแ แจแแแซแแแแ? แแ แแ แแก แซแแแแ แจแแกแแแฉแแแแ, แ แแ แแแ แแแ แแแแแแ แแแแแจแ แฉแแแ แแแแแแฏแแ แแแฃแแแ แแแแแแแแ แ แฅแแแแแ แแ, แจแแกแแแแแแกแแ, แแแ แแแ แแแแแแ แแแแแจแ แแแแ แแแแแฏแ แฃแแแ แแแแขแแแแ แแ แฌแแแกแแแแกแแก แแแแแฏแ แจแแแแแชแแ แแ. แฉแแแ แแแแก แแ แแแแแแแแแแ แแ แกแขแแขแแแจแ - แแก แฃแแแ แซแแแแแ แแ แซแแแแ. แแกแฃแ แแแแแแก แจแแฃแซแแแแ แแแแแ แแคแแฅแ แแ แ แแแแ แแแแแแแแ แแก, แแ แแ แแก แ แแฃแแ :)
แแฎแแ แแแแแ แจแแแแกแ แฃแแแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ แแแแแแแแแแแก แแแแแงแแแแแแ แแฃแแแ (แแ แแฃ แฌแแแแฌแงแแแแแ แแ แฅแแแแก, แ แแแแแแแช แแแ แ แแแแแแแแแแ)
แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแแแ (NumPy)
# ะดะปั ะฝะฐัะฐะปะฐ ะฝะฐะฟะธัะตะผ ััะฝะบัะธั ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฐะณะฐ
def stoch_grad_step_numpy(vector_init, X, ind, y, l):
x = X[ind]
y_pred = np.dot(x,vector_init)
err = y_pred - y[ind]
grad_a = err
grad_b = x[1]*err
return vector_init - l*np.array([grad_a, grad_b])
# ะพะฟัะตะดะตะปะธะผ ััะฝะบัะธั ััะพั
ะฐััะธัะตัะบะพะณะพ ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ
def stoch_grad_descent_numpy(X, y, l=0.1, steps = 800):
vector_init = np.array([[np.random.randint(X.shape[0])], [np.random.randint(X.shape[0])]])
errors = []
for i in range(steps):
ind = np.random.randint(X.shape[0])
new_vector = stoch_grad_step_numpy(vector_init, X, ind, y, l)
vector_init = new_vector
errors.append(error_square_numpy(vector_init,X,y))
return (vector_init), (errors)
# ะทะฐะฟะธัะตะผ ะผะฐััะธะฒ ะทะฝะฐัะตะฝะธะน
list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000)
print ' 33[1m' + ' 33[4m' + "ะะฝะฐัะตะฝะธั ะบะพัััะธัะธะตะฝัะพะฒ a ะธ b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ะกัะผะผะฐ ะบะฒะฐะดัะฐัะพะฒ ะพัะบะปะพะฝะตะฝะธะน:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ะะพะปะธัะตััะฒะพ ะธัะตัะฐัะธะน ะฒ ััะพั
ะฐััะธัะตัะบะพะผ ะณัะฐะดะธะตะฝัะฝะพะผ ัะฟััะบะต:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
print
แแแแจแแแแแแแแแ แแแแฅแแแก แแแแแ แแฆแแแฉแแแ, แ แแช แแแแแงแแแแแแก แแแ แแจแ แแแฆแแแกแแแแกแแก แแฃแแแ. แแฃแแชแ, แแก แแแแแแฃแ แแ.
แแแแแ แแแแแ แแแแแ, แ แแแแแ แฎแแแก แแแแแญแแ แแ แกแขแแฅแแกแขแฃแ แ แแ แแแแแแขแฃแ แ แแแฆแแแ แแ.
SGD แแแแแแแแแก แแ แแแก แแแแกแแแฆแแ แแก แแแแ (80 แแแแกแ แแแแแฏแ)
print ' 33[1m' + ' 33[4m' +
"ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ััะพั
ะฐััะธัะตัะบะพะณะพ ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ะฑะตะท ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฑะธะฑะปะธะพัะตะบะธ NumPy:"
+ ' 33[0m'
%timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' +
"ะัะตะผั ะฒัะฟะพะปะฝะตะฝะธั ััะพั
ะฐััะธัะตัะบะพะณะพ ะณัะฐะดะธะตะฝัะฝะพะณะพ ัะฟััะบะฐ ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ะฑะธะฑะปะธะพัะตะบะธ NumPy:"
+ ' 33[0m'
%timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000)
แ แแช แฃแคแ แ แจแแ แก แแ แแก แขแงแแจแ, แแแ แฃแคแ แ แแแแแแ แฆแ แฃแแแแแ: แแแแแ แแ แแฎแแ, "แแแแ แแแฌแแ แแแ" แคแแ แแฃแแ แแฉแแแแแแก แกแแฃแแแแแกแ แจแแแแแก. แแก แงแแแแแคแแ แ แแแแแ แแแขแงแแแแแแก, แ แแ แแแแแแแแแแแก แแแแแงแแแแแแก แแแแแ แฃแคแ แ แแแฎแแแฌแแแ แแแแแ แฃแแแ แแ แกแแแแแแแก แแฃแแแ, แ แแช แแแแแแแแแ แแฉแฅแแ แแแก แแแแแแแแแ แแแแ แแชแแแแก. แแ แกแขแแขแแแจแ แฉแแแ แแ แแแกแฌแแแแแ แแแ แจแแกแแฎแแ. แแแแแกแฃแคแแ แแ แแก แแฅแแแแ แ แแแแแ แคแแฅแ แ :)
แจแแแแฏแแแแ
แจแแฏแแแแแแแแ แแแแแ แแฃแแแกแฃแฎแ แแแแฎแแแก, แ แแแแแแช แแแแ แแแแแแแแแ แฌแแ แแแแจแแ แฉแแแแ แซแแแ แคแแกแ แแแแแฎแแแแแกแแแ. แกแแแแแแแแแแจแ แ แแขแแ แแ แแก แแกแแแ โแฌแแแแแโ แแแฆแแแ แแแแแ, แ แแขแแ แแแญแแ แแแแ แแแแแ (แซแแ แแแแแแ แแแแแ) แกแแแ แฃแแ, แ แแแ แแแแแแแ แซแแแ แคแแกแ แแแแแแแ, แแฃแแ แฉแแแ แฎแแแจแ แแแแฅแแก แแกแแแ แซแแแแ แ แแ แแแ แขแแแ แแแฌแงแแแแแแแ, แแแแแแขแแแฃแ แ แแแแฎแกแแแก แคแแ แแ, แ แแแแแแช แแงแแกแแแ แแ แแแแแแแแแแก แกแฌแแ แแแแแแแก?
แแ แแแแฎแแแแ แแแกแฃแฎแ แแแแแแแ แแ แแแแก. แแฎแแ แฉแแแ แแแแแแฎแแแแ แซแแแแแ แแแ แขแแ แแแแแแแแก, แ แแแแแจแแช แแ แแก แญแแจแแแ แแขแ แแแกแฃแฎแ แแแแแแแแแแฃแแแ แแ แ แแแจแแแแ . แแฅแแแ แแแแก แฎแจแแ แแ แแแ แฎแแแแแ แชแฎแแแ แแแแจแ, แแกแ แ แแ แฌแแ แแแแแแแแแแ, แ แแ แแแแฅแแก 2, 30, 50 แแ แแแขแ แแแจแแแ. แแแแแ แแแแฃแแแขแแ แแแแก แแแแกแแแแ, แแ แแฃแแแแช แแแแแแแกแแแแ แแแแจแแแแแแแ แแแแแแฃแแ แแขแ แแแฃแขแแกแแแแก. แแ แจแแแแฎแแแแแจแ, แแแแแแขแแแฃแ แแ แฎแกแแแ แแ แจแแแซแแแแ แแ แแแฃแซแแแก แแแแแชแแแก แแ แฉแแแแ แแแก. แแแแแก แแฎแ แแ, แแ แแแแแแขแฃแ แ แแแฆแแแ แแ แแ แแแกแ แแแ แแแชแแแแ แแแ-แแแแ, แแแแ แแ แแฃแชแแแแแแแ แแแแแฎแแแแแก แแแแแแแแ - แคแฃแแฅแชแแแก แแแแแแฃแแแแ. แแ แแ แแแแ แแแฃแแแ แกแแฉแฅแแ แแแ - แฉแแแ แแแแแ แแแแแแฎแแแแแ แแแแแก, แ แแแแแแแช แกแแจแฃแแแแแแก แแแแแชแแแก แแแแแงแแแแ แแ แแแแแ แแแฃแแแ แแ แแแแแฏแแก แกแแแ แซแ (แแแฃ แกแแฉแฅแแ แ).
แแฎแแ แแ แ แแแแฃแ แ แแแแแ แ แแแแฃแแ.
แแแ แแแ แ แแแจแ, แแแแแ แแแฅแแก, แ แแ แกแขแแขแแแจแ แฌแแ แแแแแแแแแ แแแกแแแ แแแแฎแแแ แแแ แแแแฌแงแแ โแแแแแชแแแแ แแแชแแแแ แแแกโ แแแแก แแแแแแแจแ, แแฃ แ แแแแ แฃแแแ แแแแฎแกแแแ แแแ แขแแแ (แแ แแ แ แแฎแแแแ) แฌแ แคแแแ แ แแแ แแกแแแก แแแแขแแแแแแแ.
แแแแ แ, แฉแแแ แแแแแแฎแแแแ แแแแขแแแแแแก แแแแฎแกแแแก แ แแแแแแแแ แแแ. แแฎแแ, แกแแขแฃแแชแแแแแ แแแแแแแแแแ แ, แฉแแแ แจแแแแแซแแแ แแแแ แฉแแแ แแก, แ แแแแแแช แกแแฃแแแแแกแแ แจแแแคแแ แแแ แแ แแแแแแแก แแแกแแแแแ แแแแแ.
แแแกแแแ, แฉแแแ แแแแแแแฎแแ แแแแแขแแแแแ แแแ แแแแขแ แแแแก แซแแแ, แแแ แซแแ, แแ แแแแแแขแฃแ แ แแแฆแแแ แแแก แแแแแฏแแก แกแแแ แซแ. แแ แแแ แแแแขแ แแก แฃแแฃแแแแแแงแแคแ แแ แจแแแซแแแแ. แ แแแแ แช แแแแแ แแฆแแแแจแแ, แแแแแแแแแแแก แฆแแ แแแฃแแแแแก แจแแกแแแชแแ แแแแแ, แแแฆแแแ แแแก แแ แแก แฃแแแ แจแแแชแแแแแก แแแแแฏแแก แกแแแ แซแ.
แแแแแฎแ, แฉแแแแก แจแแแแฎแแแแแจแ, "แกแแฎแแจแ แแแฌแแ แแแ" แคแฃแแฅแชแแแแ แแฉแแแแแแแแแ แกแแฃแแแแแกแ แแ แแแก แจแแแแแแแก แแแแแแแแแแแกแแแแก. แแก แแแแแ แแแแแฌแแแฃแแแ แแแแแแแแแแแก แจแแกแแซแแแแแแแแแแก แแ แแแ แแคแแกแแแแแแฃแ แแ แแแแแงแแแแแแก แแแแ แแฃแแแ. แแแแ แแ แ แแแแ แช แแก แจแแแซแแแแ แแงแแก, แจแแแแแแ แแแกแแแแ แแแแแกแแแแแ แแแแแแแแแแก. แแ แแแก แแฎแ แแ, แฎแแแแแฎแแ แฆแแ แก แแแแแแแแ แแแฃแแ แแแ แแแแก แแแแฎแแแก แแแจแแแก แฅแแแจ แแแงแแแแแ, แแแแ แ แแฎแ แแ แแ แงแแแแแแแแก แแ แฆแแ แก แงแแแแแคแ แแก แแแ แแฃแแแแ โ แแแ แแฅแแ, แฎแแแแแฎแแ แแ แแแแแแแก แแแแแญแ แแก แฃแคแ แ แแแ แขแแแ แแแ แฃแคแ แ แแคแแฅแขแฃแ แแ. แแ แ แแแแแ แฉแแแแ แแแแแแ แแงแ แแแ แขแแแ แฌแ แคแแแ แ แแแ แแกแแแก แแแแขแแแแแแก แแแแฎแกแแแก แกแแแ แแแแแแแแก แแแแแแแ, แฉแแแแแแแก แกแแแกแแแแ แกแแแแแ แแกแ แแงแ โแแแแ แแแฌแแ แแแโ แคแฃแแฅแชแแแแแก แแแแแงแแแแแ.
แแแขแแ แแขแฃแ แ (แแ แ แแฆแแช แแกแแแแกแ)
1. แฌแ แคแแแ แ แแแ แแกแแ
2. แฃแแชแแ แแกแ แแแแแ แแขแแแแก แแแแแแ
3. แฌแแ แแแแแฃแแ
4. แแ แแแแแแขแ
5. แแ แแแแแแขแฃแ แ แแแฆแแแ แแ
6. NumPy แแแแแแแแแแ
แฌแงแแ แ: www.habr.com