เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เชฒเซ‡เช– เชธเชฐเชณ (เชœเซ‹เชกเซ€) เชฐเซ€เช—เซเชฐเซ‡เชธเชจ เชฐเซ‡เช–เชพเชจเชพ เช—เชพเชฃเชฟเชคเชฟเช• เชธเชฎเซ€เช•เชฐเชฃเชจเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช˜เชฃเซ€ เชฐเซ€เชคเซ‹เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ‡ เช›เซ‡.

เช…เชนเซ€เช‚ เชšเชฐเซเชšเชพ เช•เชฐเซ‡เชฒ เชธเชฎเซ€เช•เชฐเชฃเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชจเซ€ เชคเชฎเชพเชฎ เชชเชฆเซเชงเชคเชฟเช“ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชšเซ‹เชฐเชธ เชชเชฆเซเชงเชคเชฟ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. เชšเชพเชฒเซ‹ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เชชเชฆเซเชงเชคเชฟเช“เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€เช:

  • เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชพเชคเซเชฎเช• เช‰เช•เซ‡เชฒ
  • เช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชกเชฟเชธเซ‡เชจเซเชŸ
  • เชธเซเชŸเซ‹เช•เซ‡เชธเซเชŸเชฟเช• เช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชตเช‚เชถ

เชธเซ€เชงเซ€ เชฐเซ‡เช–เชพเชจเชพ เชธเชฎเซ€เช•เชฐเชฃเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชจเซ€ เชฆเชฐเซ‡เช• เชชเชฆเซเชงเชคเชฟ เชฎเชพเชŸเซ‡, เชฒเซ‡เช– เชตเชฟเชตเชฟเชง เช•เชพเชฐเซเชฏเซ‹ เชชเซ‚เชฐเชพ เชชเชพเชกเซ‡ เช›เซ‡, เชœเซ‡ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฒเช–เซ‡เชฒเชพ เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชจเชฎเซ€ เช…เชจเซ‡ เชœเซ‡ เช—เชฃเชคเชฐเซ€ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชจเชฎเซ€. เชเชตเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เช•เซเชถเชณ เช‰เชชเชฏเซ‹เช— เชจเชฎเซ€ เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เช–เชฐเซเชš เช˜เชŸเชพเชกเชถเซ‡.

เชฒเซ‡เช–เชฎเชพเช‚ เช†เชชเซ‡เชฒ เชคเชฎเชพเชฎ เช•เซ‹เชก เชญเชพเชทเชพเชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เช›เซ‡ เช…เชœเช—เชฐ 2.7 เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชœเซเชฏเซเชชเซ€เชŸเชฐ เชจเซ‹เชŸเชฌเซเช•. เชธเซเชฐเซ‹เชค เช•เซ‹เชก เช…เชจเซ‡ เชจเชฎเซ‚เชจเชพ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡เชจเซ€ เชซเชพเช‡เชฒ เชชเชฐ เชชเซ‹เชธเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช—เซ€เชฅเชฌ

เช† เชฒเซ‡เช– เชจเชตเชพ เชจเชฟเชถเชพเชณเซ€เชฏเชพ เช…เชจเซ‡ เชœเซ‡เช“ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เช†เชฐเซเชŸเชฟเชซเชฟเชถเชฟเชฏเชฒ เชˆเชจเซเชŸเซ‡เชฒเชฟเชœเชจเซเชธ - เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—เชจเชพ เช–เซ‚เชฌ เชœ เชตเซเชฏเชพเชชเช• เชตเชฟเชญเชพเช—เชจเชพ เช…เชญเซเชฏเชพเชธเชฎเชพเช‚ เชจเชฟเชชเซเชฃเชคเชพ เชฎเซ‡เชณเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชšเซ‚เช•เซเชฏเชพ เช›เซ‡ เชคเซ‡เช“ เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ เชตเชงเซ เชฒเช•เซเชทเซเชฏเชพเช‚เช•เชฟเชค เช›เซ‡.

เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชเช• เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช.

เช‰เชฆเชพเชนเชฐเชฃ เชถเชฐเชคเซ‹

เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชชเชพเช‚เชš เชฎเซ‚เชฒเซเชฏเซ‹ เช›เซ‡ เชœเซ‡ เชชเชฐเชพเชงเซ€เชจเชคเชพเชจเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ Y เชฅเซ€ X (เช•เซ‹เชทเซเชŸเช• เชจเช‚. 1):

เช•เซ‹เชทเซเชŸเช• เชจเช‚เชฌเชฐ 1 "เช‰เชฆเชพเชนเชฐเชฃ เชถเชฐเชคเซ‹"

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เช…เชฎเซ‡ เชงเชพเชฐเซ€เชถเซเช‚ เช•เซ‡ เชฎเซ‚เชฒเซเชฏเซ‹ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เชตเชฐเซเชทเชจเซ‹ เชฎเชนเชฟเชจเซ‹ เช›เซ‡, เช…เชจเซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ - เช† เชฎเชนเชฟเชจเซ‡ เช†เชตเช•. เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เช†เชตเช• เชตเชฐเซเชทเชจเชพ เชฎเชนเชฟเชจเชพ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ - เชเช•เชฎเชพเชคเซเชฐ เชจเชฟเชถเชพเชจเซ€ เชœเซ‡เชจเชพ เชชเชฐ เช†เชตเช• เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชเชŸเชฒเซเช‚ เชœ เช›เซ‡, เชตเชฐเซเชทเชจเชพ เชฎเชนเชฟเชจเชพ เชชเชฐ เช†เชตเช•เชจเซ€ เชถเชฐเชคเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ เช…เชจเซ‡ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ - เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช˜เชฃเชพ เช“เช›เชพ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช†เชตเชพ เชธเชฐเชณเซ€เช•เชฐเชฃ เชคเซ‡ เชถเช•เซเชฏ เชฌเชจเชพเชตเชถเซ‡, เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡เช“ เช•เชนเซ‡ เช›เซ‡, เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชนเช‚เชฎเซ‡เชถเชพ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ เชจเชนเซ€เช‚, เชคเซ‡ เชธเชพเชฎเช—เซเชฐเซ€ เช•เซ‡ เชœเซ‡ เชจเชตเชพ เชจเชฟเชถเชพเชณเซ€เชฏเชพ เช†เชคเซเชฎเชธเชพเชค เช•เชฐเซ‡ เช›เซ‡. เช…เชจเซ‡ เชธเช‚เช–เซเชฏเชพเช“เชจเซ€ เชธเชฐเชณเชคเชพ เชชเชฃ เชœเซ‡เช“ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชถเซเชฐเชฎ เช–เชฐเซเชš เชตเชฟเชจเชพ เช•เชพเช—เชณ เชชเชฐ เช‰เชฆเชพเชนเชฐเชฃ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡ เชคเซ‡เชฎเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชšเชพเชฒเซ‹ เชงเชพเชฐเซ€เช เช•เซ‡ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช†เชชเซ‡เชฒ เช…เชตเชฒเช‚เชฌเชจ เชซเซ‹เชฐเซเชฎเชจเซ€ เชธเชฐเชณ (เชœเซ‹เชกเซ€) เชฐเซ€เช—เซเชฐเซ‡เชธเชจ เชฒเชพเช‡เชจเชจเชพ เช—เชพเชฃเชฟเชคเชฟเช• เชธเชฎเซ€เช•เชฐเชฃ เชฆเซเชตเชพเชฐเชพ เช–เซ‚เชฌ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช…เช‚เชฆเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เชœเซเชฏเชพเช‚ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เชคเซ‡ เชฎเชนเชฟเชจเซ‹ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เชตเช• เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เชนเชคเซ€, เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ - เชฎเชนเชฟเชจเชพเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช†เชตเช•, เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ ะธ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เช…เช‚เชฆเชพเชœเชฟเชค เชฐเซ‡เช–เชพเชจเชพ เชฐเซ€เช—เซเชฐเซ‡เชธเชจ เช—เซเชฃเชพเช‚เช• เช›เซ‡.

เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เช—เซเชฃเชพเช‚เช• เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เช˜เชฃเซ€เชตเชพเชฐ เช…เช‚เชฆเชพเชœเชฟเชค เชฐเซ‡เช–เชพเชจเซ‹ เชขเชพเชณ เช…เชฅเชตเชพ เชขเชพเชณ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชคเซ‡ เชฐเช•เชฎ เชฐเชœเซ‚ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฌเชฆเชฒเชพเชฏ เช›เซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚.

เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช…เชฎเชพเชฐเซเช‚ เช•เชพเชฐเซเชฏ เชธเชฎเซ€เช•เชฐเชฃเชฎเชพเช‚ เช†เชตเชพ เช—เซเชฃเชพเช‚เช• เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ ะธ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚, เชœเซ‡เชจเชพ เชชเชฐ เชธเชพเชšเชพ เชœเชตเชพเชฌเซ‹เชฎเชพเช‚เชฅเซ€ เชฎเชนเชฟเชจเชพ เชชเซเชฐเชฎเชพเชฃเซ‡ เช…เชฎเชพเชฐเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡เชฒ เช†เชตเช• เชฎเซ‚เชฒเซเชฏเซ‹เชจเชพ เชตเชฟเชšเชฒเชจเซ‹, เชเชŸเชฒเซ‡ เช•เซ‡. เชจเชฎเซ‚เชจเชพเชฎเชพเช‚ เชชเซเชฐเชธเซเชคเซเชค เชฎเซ‚เชฒเซเชฏเซ‹ เชจเซเชฏเซ‚เชจเชคเชฎ เชนเชถเซ‡.

เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ€ เชšเซ‹เชฐเชธ เชชเชฆเซเชงเชคเชฟ

เชจเซเชฏเซ‚เชจเชคเชฎ เชšเซ‹เชฐเชธ เชชเชฆเซเชงเชคเชฟ เช…เชจเซเชธเชพเชฐ, เชตเชฟเชšเชฒเชจเชจเซ€ เช—เชฃเชคเชฐเซ€ เชคเซ‡เชจเซ‡ เชตเชฐเซเช—เซ€เช•เชฐเชฃ เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเซ€ เชœเซ‹เชˆเช. เช† เชคเช•เชจเซ€เช• เชคเชฎเชจเซ‡ เชตเชฟเชšเชฒเชจเซ‹เชจเชพ เชชเชฐเชธเซเชชเชฐ เชฐเชฆเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซ‹ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชตเชฟเชฐเซ‹เชงเซ€ เชšเชฟเชนเซเชจเซ‹ เชนเซ‹เชฏ. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชเช• เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชตเชฟเชšเชฒเชจ เช›เซ‡ +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 '********************************************'

เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ

เชนเชตเซ‡, เช†เชชเชฃเซ‡ เชธเซŒเชชเซเชฐเชฅเชฎ, เชกเซ‡เชŸเชพ เชฒเซ‹เชก เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชฌเซ€เชœเซเช‚, เชฒเซ‹เชกเชฟเช‚เช—เชจเซ€ เชถเซเชฆเซเชงเชคเชพ เชคเชชเชพเชธเซ€ เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเซ‡ เชกเซ‡เชŸเชพเชจเซ‡ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเซ‡ เชชเซเชฐเชฅเชฎ เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ เชนเชพเชฅ เชงเชฐเซ€เชถเซเช‚. เช† เชฎเชพเชŸเซ‡ เชตเชพเชฐเช‚เชตเชพเชฐ เชตเชชเชฐเชพเชคเซ€ เชชเชฆเซเชงเชคเชฟ เช›เซ‡ เชชเซ‡เชฐเชชเซเชฒเซ‹เชŸ เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹ เชธเซ€เชฌเซ‹เชฐเซเชจ. เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชธเช‚เช–เซเชฏเชพเช“เชจเซ‡ เชฒเซ€เชงเซ‡, เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช•เซ‹เชˆ เช…เชฐเซเชฅ เชจเชฅเซ€ เชธเซ€เชฌเซ‹เชฐเซเชจ. เช…เชฎเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ เชฎเซ‡เชŸเชชเซเชฒเซ‹เชŸเชฒเชฟเชฌ เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชธเซเช•เซ‡เชŸเชฐเชชเซเชฒเซ‹เชŸ เชœเซเช“.

เชธเซเช•เซ‡เชŸเชฐเชชเซเชฒเซ‹เชŸ เช•เซ‹เชก

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()

เชšเชพเชฐเซเชŸ เชจเช‚เชฌเชฐ 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
เช…เช‚เชค{เช•เซ‡เชธเซ‹}
เช…เช‚เชค{เชธเชฎเซ€เช•เชฐเชฃ*}

เช•เซเชฐเซ‡เชฎเชฐเชจเชพ เชจเชฟเชฏเชฎ เชฎเซเชœเชฌ เช†เชชเชฃเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชจเชฟเชฐเซเชฃเชพเชฏเช•, เชคเซ‡เชฎเชœ เชจเชฟเชฐเซเชฃเชพเชฏเช•เซ‹ เชถเซ‹เชงเซ€เชถเซเช‚ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เช…เชจเซ‡ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚, เชœเซ‡ เชชเช›เซ€, เชจเชฟเชฐเซเชฃเชพเชฏเช•เชจเซ‡ เชตเชกเซ‡ เชตเชฟเชญเชพเชœเชจ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชจเชฟเชฐเซเชฃเชพเชฏเช• เชฎเชพเชŸเซ‡ - เช—เซเชฃเชพเช‚เช• เชถเซ‹เชงเซ‹ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚, เช เชœ เชฐเซ€เชคเซ‡ เช†เชชเชฃเซ‡ เช—เซเชฃเชพเช‚เช• เชถเซ‹เชงเซ€เช เช›เซ€เช เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚.

เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชพเชคเซเชฎเช• เช‰เช•เซ‡เชฒ เช•เซ‹เชก

# ะพะฟั€ะตะดะตะปะธะผ ั„ัƒะฝะบั†ะธัŽ ะดะปั ั€ะฐัั‡ะตั‚ะฐ ะบะพัั„ั„ะธั†ะธะตะฝั‚ะพะฒ 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()

เชšเชพเชฐเซเชŸ เชจเช‚เชฌเชฐ 2 โ€œเชธเชพเชšเชพ เช…เชจเซ‡ เช—เชฃเชคเชฐเซ€เชชเซ‚เชฐเซเชตเช•เชจเชพ เชœเชตเชพเชฌเซ‹โ€

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เชคเชฎเซ‡ เชฆเชฐเซ‡เช• เชฎเชนเชฟเชจเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชšเชฒเชจ เช—เซเชฐเชพเชซ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชตเซเชฏเชตเชนเชพเชฐเซ เชฎเซ‚เชฒเซเชฏ เชฎเซ‡เชณเชตเซ€เชถเซเช‚ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชœเชฟเชœเซเชžเชพเชธเชพเชจเซ‡ เชธเช‚เชคเซ‹เชทเซ€เชถเซเช‚ เช•เซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชธเชจ เชธเชฎเซ€เช•เชฐเชฃ เชตเชฐเซเชทเชจเชพ เชฎเชนเชฟเชจเชพ เชชเชฐ เช†เชตเช•เชจเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เช•เซ‡เชŸเชฒเซ€ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

เชตเชฟเชšเชฒเชจ เชšเชพเชฐเซเชŸ เช•เซ‹เชก

# ะพะฟั€ะตะดะตะปะธะผ ั„ัƒะฝะบั†ะธัŽ ะดะปั ั„ะพั€ะผะธั€ะพะฒะฐะฝะธั ะผะฐััะธะฒะฐ ะพั‚ะบะปะพะฝะตะฝะธะน ะฒ ะฟั€ะพั†ะตะฝั‚ะฐั…
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()

เชšเชพเชฐเซเชŸ เชจเช‚เชฌเชฐ 3 โ€œเชตเชฟเชšเชฒเชจเซ‹, %โ€

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เชธเช‚เชชเซ‚เชฐเซเชฃ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เช…เชฎเชพเชฐเซเช‚ เช•เชพเชฐเซเชฏ เชชเซ‚เชฐเซเชฃ เช•เชฐเซเชฏเซเช‚.

เชšเชพเชฒเซ‹ เชเช• เช•เชพเชฐเซเชฏ เชฒเช–เซ€เช เชœเซ‡ เช—เซเชฃเชพเช‚เช• เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ ะธ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชจเชฎเซ€, เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เช…เชฎเซ‡ เชฌเซ‡ เช•เชพเชฐเซเชฏเซ‹ เชฒเช–เซ€เชถเซเช‚: เชเช• เชธเซเชฏเซเชกเซ‹เช‡เชจเชตเชฐเซเชธ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ (เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเซ‡เชถเชจเชฒเซ€ เชœเชŸเชฟเชฒ เช…เชจเซ‡ เช…เชธเซเชฅเชฟเชฐ เช›เซ‡), เชฌเซ€เชœเซเช‚ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชธเชฎเซ€เช•เชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡.

เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชพเชคเซเชฎเช• เช‰เช•เซ‡เชฒ เช•เซ‹เชก (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()

เช—เซเชฐเชพเชซ เชจเช‚เชฌเชฐ 4 โ€œเช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชกเชฟเชธเซ‡เชจเซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชšเซ‹เชฐเชธ เชตเชฟเชšเชฒเชจเซ‹เชจเซ‹ เชธเชฐเชตเชพเชณเซ‹โ€

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เช—เซเชฐเชพเชซ เชชเชฐ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชฆเชฐเซ‡เช• เชชเช—เชฒเชพ เชธเชพเชฅเซ‡ เชญเซ‚เชฒ เช˜เชŸเชคเซ€ เชœเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจเซ‹ เชชเช›เซ€ เช†เชชเชฃเซ‡ เชฒเช—เชญเช— เช†เชกเซ€ เชฐเซ‡เช–เชพ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ€เช เช›เซ€เช.

เช›เซ‡เชฒเซเชฒเซ‡, เชšเชพเชฒเซ‹ เช•เซ‹เชก เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชธเชฎเชฏเชฎเชพเช‚ เชคเชซเชพเชตเชคเชจเซ‹ เช…เช‚เชฆเชพเชœ เชฒเช—เชพเชตเซ€เช:

เช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชกเชฟเชธเซ‡เชจเซเชŸ เช—เชฃเชคเชฐเซ€ เชธเชฎเชฏ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เช•เซ‹เชก

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()

เช—เซเชฐเชพเชซ เชจเช‚เชฌเชฐ 5 โ€œเชธเซเชŸเซ‹เช•เซ‡เชธเซเชŸเชฟเช• เช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชกเชฟเชธเซ‡เชจเซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชšเซ‹เชฐเชธ เชตเชฟเชšเชฒเชจเซ‹เชจเซ‹ เชธเชฐเชตเชพเชณเซ‹โ€

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เชถเซ‡เชกเซเชฏเซ‚เชฒ เชœเซ‹เชคเชพเช‚, เชฌเชงเซเช‚ เชœ เชœเช—เซเชฏเชพเช เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชนเชตเซ‡ เช…เชฎเซ‡ เชฌเชงเซเช‚ เช เซ€เช• เช•เชฐเซ€เชถเซเช‚.

เชคเซ‹ เชถเซเช‚ เชฅเชฏเซ? เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เชฅเชฏเซเช‚. เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เช…เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชฐเซ€เชคเซ‡ เชเช• เชฎเชนเชฟเชจเซ‹ เชชเชธเช‚เชฆ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‡เชฒเชพ เชฎเชนเชฟเชจเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเซเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เช†เชตเช•เชจเซ€ เช—เชฃเชคเชฐเซ€เชฎเชพเช‚ เชญเซ‚เชฒ เช˜เชŸเชพเชกเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡. เชชเช›เซ€ เช…เชฎเซ‡ เชฌเซ€เชœเซ‹ เชฎเชนเชฟเชจเซ‹ เชชเชธเช‚เชฆ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช—เชฃเชคเชฐเซ€เชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชฌเซ€เชœเชพ เชชเชธเช‚เชฆ เช•เชฐเซ‡เชฒเชพ เชฎเชนเชฟเชจเชพ เชฎเชพเชŸเซ‡ เชญเซ‚เชฒ เช˜เชŸเชพเชกเซ€เช เช›เซ€เช. เชนเชตเซ‡ เชฏเชพเชฆ เชฐเชพเช–เซ‹ เช•เซ‡ เชชเซเชฐเชฅเชฎ เชฌเซ‡ เชฎเชนเชฟเชจเชพ เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชธเชจ เชธเชฎเซ€เช•เชฐเชฃเชจเซ€ เชฐเซ‡เช–เชพเชฎเชพเช‚เชฅเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชตเชฟเชšเชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช† เชฌเซ‡ เชฎเชนเชฟเชจเชพเช“เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆเชชเชฃ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช•เชจเซ€ เชญเซ‚เชฒเชจเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡, เช…เชฎเชพเชฐเซเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เช—เช‚เชญเซ€เชฐเชคเชพเชชเซ‚เชฐเซเชตเช• เชธเชฎเช—เซเชฐ เชจเชฎเซ‚เชจเชพ เชฎเชพเชŸเซ‡ เชญเซ‚เชฒเชจเซ‡ เชตเชงเชพเชฐเซ‡ เช›เซ‡. เชคเซ‹ เชถเซเช‚ เช•เชฐเชตเซเช‚? เชœเชตเชพเชฌ เชธเชฐเชณ เช›เซ‡: เชคเชฎเชพเชฐเซ‡ เชตเช‚เชถเชจเชพ เชชเช—เชฒเชพเชจเซ‡ เช˜เชŸเชพเชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช›เซ‡เชตเชŸเซ‡, เชตเช‚เชถเชจเชพ เชชเช—เชฒเชพเชจเซ‡ เช˜เชŸเชพเชกเซ€เชจเซ‡, เชญเซ‚เชฒ เช‰เชชเชฐ เช…เชจเซ‡ เชจเซ€เชšเซ‡ "เชœเชฎเซเชชเชฟเช‚เช—" เช•เชฐเชตเชพเชจเซเช‚ เชชเชฃ เชฌเช‚เชง เช•เชฐเชถเซ‡. เช…เชฅเชตเชพ เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡, "เชœเชฎเซเชชเชฟเช‚เช—" เชญเซ‚เชฒ เช…เชŸเช•เชถเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เชเชŸเชฒเซ€ เชเชกเชชเชฅเซ€ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚ :) เชšเชพเชฒเซ‹ เชคเชชเชพเชธเซ€เช.

เชจเชพเชจเชพ เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸ เชธเชพเชฅเซ‡ 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()

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เช—เซเชฐเชพเชซ เชจเช‚เชฌเชฐ 6 โ€œเชธเซเชŸเซ‹เช•เซ‡เชธเซเชŸเชฟเช• เช—เซเชฐเซ‡เชกเชฟเชฏเชจเซเชŸ เชกเชฟเชธเซ‡เชจเซเชŸ (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()

เช†เชฒเซ‡เช– เชจเช‚เชฌเชฐ 7 โ€œเชธเซเช•เซเชตเซ‡เชฐเซเชก เชตเชฟเชšเชฒเชจเซ‹เชจเซ‹ เชธเชฐเชตเชพเชณเซ‹ SGD (เชชเซเชฐเชฅเชฎ 1000 เชชเช—เชฒเชพเช‚)โ€

เชธเชฐเชณ เชฐเซ‡เช–เซ€เชฏ เชฐเซ€เช—เซเชฐเซ‡เชถเชจเชจเซเช‚ เชธเชฎเซ€เช•เชฐเชฃ เช‰เช•เซ‡เชฒเชตเซเช‚

เช†เชฒเซ‡เช– เชจเช‚เชฌเชฐ 8 โ€œเชธเซเช•เซเชตเซ‡เชฐเซเชก เชตเชฟเชšเชฒเชจเซ‹เชจเซ‹ เชธเชฐเชตเชพเชณเซ‹ 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. เชฒเซ€เชจเชฟเชฏเชฐ เชฐเซ€เช—เซเชฐเซ‡เชถเชจ

http://statistica.ru/theory/osnovy-lineynoy-regressii/

2. เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชšเซ‹เชฐเชธ เชชเชฆเซเชงเชคเชฟ

mathprofi.ru/metod_naimenshih_kvadratov.html

3. เชตเซเชฏเซเชคเซเชชเชจเซเชจ

www.mathprofi.ru/chastnye_proizvodnye_primery.html

4. เชขเชพเชณ

mathprofi.ru/proizvodnaja_po_napravleniju_i_gradient.html

5. เชขเชพเชณ เชตเช‚เชถ

habr.com/en/post/471458

habr.com/en/post/307312

artemarakcheev.com//2017-12-31/linear_regression

6. NumPy เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€

docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.linalg.solve.html

docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.linalg.pinv.html

pythonworld.ru/numpy/2.html

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹