f_
frhyme.code
•python-libs•โฑ ์•ฝ 4๋ถ„ ์†Œ์š”

Python: patsy - overview.

patsy: python package for describing statistical models.

  • ์š”์ฆ˜, ์•„๋Š” ํ›„๋ฐฐ๊ฐ€ ๋ฌผ์–ด๋ด์„œ conjoint ๋ถ„์„์ด๋ผ๋Š” ๊ฒƒ์„ ์กฐ๊ธˆ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ • ์‚ฌ์šฉ์ž ๊ตฐ์„ ๋Œ€์ƒ์œผ๋กœ discrete choice model์ด๋ผ๊ณ  ํ•˜๋Š”, ๊ทธ๋ƒฅ ํ”ํ•œ binary classification ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค๋งŒ, ์ค‘์š”ํ•œ ๊ฒƒ์€, neural network๊ฐ€ ์•„๋‹ˆ๊ณ , logistic regression๋งŒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .
  • linear model์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ ๊ฐ•์ ์€ interpretation์ž…๋‹ˆ๋‹ค(logistic regression๋„ generalized linear regression์— ์†ํ•˜์ฃ ). ๊ฐ ๋ณ€์ˆ˜๊ฐ€ ๊ฒฐ๊ณผ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€, ์ƒ๋Œ€์ ์œผ๋กœ ๊ทธ ํšจ๊ณผ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์—†๋Š” neural network์— ๋น„ํ•ด์„œ ๊ฐ•๋ ฅํ•˜์ฃ . ๋˜ํ•œ, โ€œ๋ณ€์ˆ˜๋ณ„๋กœ ์–ด๋–ค ๋ถ„ํฌ๋ฅผ ๊ฐ€์ง„๋‹คโ€๋ฅผ ์ฃผ์ž…ํ•˜๊ฑฐ๋‚˜, โ€œํด๋ž˜์Šค๋ณ„๋กœ ๋‹ค๋ฅธ ๋ถ„ํฌ ํ˜น์€ ๋ถ„์‚ฐ์ด ๋‹ค๋ฅด๋‹คโ€๋Š” ๊ฒƒ์„ ์ฃผ์ž…ํ•˜์—ฌ, ๊ฐ parameter๋ฅผ ๋ฏธ์„ธํ•˜๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•„๋ฌดํŠผ, ๋ญ ์ด๊ฑด ์ค‘์š”ํ•˜์ง€ ์•Š๊ตฌ์š”. ์ด๋Ÿฌํ•œ ์„ ํ˜•์ ์ธ ํ†ต๊ณ„ ๋ชจ๋ธ์„ ์„ธ์›Œ์„œ ๋‹ค์–‘ํ•œ ๊ฐ€์„ค์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด์„œ, python์—์„œ๋Š” statsmodels๋ผ๋Š” ํ†ต๊ณ„ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์„ ํ˜•๋ฐฉ์ •์‹ Ordinary Least Square๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์”๋‹ˆ๋‹ค. ๋ณด๋ฉด, ๋Œ€์ถฉ ๋ฌด์Šจ ๋ง์ธ์ง€๋Š” ๊ฐ์ด ์˜ค์‹œ์ฃ ?
model = sm.OLS.from_formula(
    formula="Y ~ X1 + X2", 
    data=data_df
)
  • ์ฆ‰, "Y ~ X1 + X2" ํ˜•ํƒœ๋กœ, formula๋ฅผ ๋„˜๊ฒจ์„œ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ƒ๋Œ€์ ์œผ๋กœ ํŽธํ•˜๊ฒŒ ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒ ์ฃ .
  • ๋ฐ˜๋Œ€๋กœ, ์ € ๊ฐ’์„ ์ผ์ผ์ด, ํ•˜๋‚˜ํ•˜๋‚˜์˜ parameter๋กœ ๋„˜๊ฒจ์•ผ ํ•œ๋‹ค๋ฉด, ๋งค์šฐ ๊ท€์ฐฎ์•„์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋ฅผ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” library๊ฐ€ ๋ฐ”๋กœ patsy์ด๋ฉฐ, ๋‹น์—ฐํ•˜์ง€๋งŒ, statsmodels๋“ฑ์—์„œ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

patsy: Overview

  • patsy๋Š” statistical model(ํŠนํžˆ, linear model)์„ ๋ฌ˜์‚ฌํ•˜๊ธฐ ์œ„ํ•œ python package์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ์ด๋Š” R, S์™€ ๊ฐ™์€ ์–ธ์–ด๋“ค์— ๋‚ด์žฌ๋œ formula language์ฃ . ๊ฐ€๋ น Y ~ x1 + x2์ฒ˜๋Ÿผ, ์„ ํ˜•์ ์ธ ๊ด€๊ณ„๋ฅผ symbolicํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • building design matrices??? ์šฐ์„ , patsy๋Š” ํ†ต๊ณ„ ํŒจํ‚ค์ง€๊ฐ€ ์•„๋‹ˆ๋ผ, ์•ž์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ R์—์„œ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ธ formula๋ฅผ python์—์„œ๋„ ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š”, bridge์™€ ๊ฐ€๊นŒ์šด ์–ธ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ฆ‰ โ€œํ†ต๊ณ„ ๋ชจ๋ธ(ํŠนํžˆ, ์„ ํ˜• ๋ชจ๋ธ์„ ์ค‘์‹ฌ์œผ๋กœ)์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ high-level interface๋ฅผ ์ œ๊ณตโ€ํ•œ๋‹ค, ๋ผ๊ณ  ๋งํ•˜๋Š”๊ฒŒ ์ข‹์•„์š”.
  • ์ฆ‰, ํ•„์š”ํ•˜๋‹ค๋ฉด, ์ง์ ‘ ์„ค์น˜ํ•ด์„œ ์“ธ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ทธ๋ณด๋‹ค๋Š” ๋ณดํ†ต statsmodels๋“ฑ์„ ์„ค์น˜ํ•  ๋•Œ ์˜์กด์„ฑ์œผ๋กœ ๋”ธ๋ ค์˜ค๋‹ˆ๊นŒ, ๊ตณ์ด ์ด๊ฒƒ๋งŒ ๋”ฐ๋กœ ์„ค์น˜ํ•  ํ•„์š”๋Š” ์—†์„ ๊ฒƒ ๊ฐ™์•„์š”.

wrap-up

  • ์ฒ˜์Œ์—๋Š” patsy์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ๋ฒ•์„ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, ์“ฐ๊ณ ๋ณด๋‹ˆ, ๋น„๊ต์  ์“ธ๊ฒŒ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ๋ง์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ทธ์ €, statsmodels์— ๋‚ด์žฌ๋˜์–ด ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ patsy์ด๋ฉฐ, ๋งŒ์•ฝ formula๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋ฉด, ์—ฌ๊ธฐ์„œ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค, ์ •๋„๋กœ๋งŒ ์ดํ•ดํ•˜๊ณ  ์ดํ›„์— formula๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฒ€์ƒ‰ํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•˜๋ฉด ๋ ๊ฒƒ ๊ฐ™์•„์š”.

reference

๐Ÿ’กRELATED ARTICLES ยท ํ•จ๊ป˜ ์ฝ์œผ๋ฉด ์ข‹์€ ์—ฐ๊ด€ ํฌ์ŠคํŠธ

๊ธ€ ์ฃผ์†Œ๊ฐ€ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.