๐Ÿฆญ AI&Big Data/ML

๊ฐœ๋… MinIO๋ž€? MinIO๋Š” AWS S3์™€ ํ˜ธํ™˜๋˜๋Š” ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์œผ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ•   ์‹ค์Šต ์š”์ฒญ์‚ฌํ•ญ data๋Š” minio์˜ raw-data ๋ฒ„ํ‚ท์—์„œ ๊ฐ€์ ธ์™€์„œ airflow๋กœ ๋งค ์‹œ๊ฐ„ ์ •๊ฐ์— ์‹คํ–‰๋˜๋Š”, ๋กœ๊ทธ๋Š” mlflow์— ๋‚จ๋Š” pipeline dag๋ฅผ ์™„์„ฑdag์ด๋ฆ„์€ 00_airflow_mlops.py๋กœ ํ•ฉ๋‹ˆ๋‹ค.experiment ์ด๋ฆ„์€ fisa-ml ์‚ฌ๊ณ ๊ณผ์ • MinIO์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„, MLflow์— ๋กœ๊น…ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” DAG๋ฅผ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค. MinIO์—์„œ raw-data ๋ฒ„ํ‚ท์— ์žˆ๋Š” data.csv ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ด๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ†ต๊ณ„๊ฐ’(ํ‰๊ท )์„ ๊ณ„์‚ฐMLflow์— ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ์‹คํ—˜ ๊ด€๋ฆฌ๋งค ์‹œ๊ฐ„ ์ •๊ฐ(0๋ถ„)๋งˆ๋‹ค ์‹คํ–‰..
๋น„์ง€๋„ ํ•™์Šต์ด๋ž€? ํƒ€๊นƒ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•์ง€๋„ ํ•™์Šต๊ณผ ๋‹ฌ๋ฆฌ ์ •๋‹ต(๋ผ๋ฒจ)์ด ์—†์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถคex) ๊ตฐ์ง‘, ์ฐจ์›์ถ•์†Œ 1. ๊ตฐ์ง‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Clustering) ๋น„์Šทํ•œ ์ƒ˜ํ”Œ๋ผ๋ฆฌ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๋Š” ๊ณผ์ •, ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ํด๋Ÿฌ์Šคํ„ฐ: ๊ตฐ์ง‘์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ ๊ทธ๋ฃน K-Means ๊ตฐ์ง‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ K-Means๋Š” ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ตฐ์ง‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, K๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ(์„ผํŠธ๋กœ์ด๋“œ, Centroid)์„ ์ž๋™์œผ๋กœ ์ฐพ๋Š” ๋ฐฉ์‹K-Means ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™ ๋ฐฉ์‹์ž„์˜๋กœ K๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ์„ ์ง€์ •๊ฐ ์ƒ˜ํ”Œ์„ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ์— ํ• ๋‹นํด๋Ÿฌ์Šคํ„ฐ์— ์†ํ•œ ์ƒ˜ํ”Œ๋“ค์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ์„ ๊ฐฑ์‹ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ์ด ๋” ์ด์ƒ ๋ณ€ํ™”ํ•˜์ง€ ์•Š์„ ๋•Œ๊นŒ..
1. ๊ฒฐ์ • ํŠธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ง€๋„ ํ•™์Šต ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ฐ ๋…ธ๋“œ์—์„œ ํŠน์ • ๊ธฐ์ค€์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ ๊ฐ ๋ฆฌํ”„ ๋…ธ๋“œ์—์„œ ์˜ˆ์ธก ๊ฐ’์„ ๊ฒฐ์ • ํŠน์ง•ํ•ด์„์ด ์‰ฌ์šฐ๋ฉฐ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ๊ณผ๋Œ€์ ํ•ฉ(overfitting)๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ๋ถ„ํ•  ๊ธฐ์ค€์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ ์‚ฌ์ดํ‚ท๋Ÿฐ์„ ํ™œ์šฉํ•œ ๊ฒฐ์ • ํŠธ๋ฆฌ ๊ตฌํ˜„from sklearn.tree import DecisionTreeClassifier# ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ํ•™์Šตdt = DecisionTreeClassifier(max_depth=3, random_state=42)dt.fit(X_train, y_train)# ์˜ˆ์ธกy_pred = dt.predict(X_test) ๊ต์ฐจ ๊ฒ€์ฆ๊ณผ ๊ฒ€์ฆ ์„ธํŠธ ๊ต์ฐจ ๊ฒ€์ฆ ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•™์Šต ๋ฐ ๊ฒ€์ฆํ•˜..
1.  ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€ ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€๋Š” ์ด๋ฆ„์—์„œ "ํšŒ๊ท€"๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๋ถ„๋ฅ˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.์ฃผ๋กœ ์ด์ง„ ๋ถ„๋ฅ˜์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜ˆ์ธก ๊ฐ’์„ 0๊ณผ 1 ์‚ฌ์ด์˜ ํ™•๋ฅ ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณต์„ ํ˜• ๋ฐฉ์ •์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์ด ๊ฐ’์„ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด 0๊ณผ 1 ์‚ฌ์ด์˜ ํ™•๋ฅ  ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜-> ๋ถ„๋ฅ˜ ๋ฌธ์ œ์—์„œ ๊ฐ ํด๋ž˜์Šค์— ์†ํ•  ํ™•๋ฅ ์„ ๊ณ„์‚ฐ ์ž‘๋™ ์›๋ฆฌ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ ํ˜• ๋ฐฉ์ •์‹์„ ํ†ตํ•ด ์˜ˆ์ธก๊ฐ’์„ ๊ณ„์‚ฐ๊ทธ๋Ÿฌ๋‚˜ ์ด ์˜ˆ์ธก๊ฐ’์€ ํ™•๋ฅ ์ด ์•„๋‹ˆ๋ฏ€๋กœ, ์ด๋ฅผ ์‹œ๊ทธ๋ชจ์ด๋“œ ํ•จ์ˆ˜์— ํ†ต๊ณผ์‹œ์ผœ 0๊ณผ 1 ์‚ฌ์ด์˜ ํ™•๋ฅ ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.์ด์ง„ ๋ถ„๋ฅ˜์—์„œ ํ™•๋ฅ ๊ฐ’์ด 0.5๋ณด๋‹ค ํฌ๋ฉด ์–‘์„ฑ ํด๋ž˜์Šค, ์ž‘์œผ๋ฉด ์Œ์„ฑ ํด๋ž˜์Šค๋กœ ์˜ˆ์ธกfrom sklearn.linear_model import LogisticRegression# ๋ชจ๋ธ ์ƒ์„ฑlr ..
ํšŒ๊ท€KNN ํšŒ๊ท€๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด k๊ฐœ์˜ ์ด์›ƒ์„ ์ฐพ์•„ ์˜ˆ์ธก๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.ํ•˜์ง€๋งŒ ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ด์›ƒ๋“ค์ด ์˜ˆ์ธก์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฉด ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ํšŒ๊ท€ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ๋‹ค.๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ชจ๋ธ์ด ํ•™์Šต์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์กฐ์ •๋˜๋Š” ๊ฐ’ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ชจ๋ธ ํ•™์Šต ์ „์— ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•˜๋Š” ๊ฐ’ํšŒ๊ท€ํšŒ๊ท€๋Š” ์—ฐ์†์ ์ธ ํƒ€๊นƒ ๋ณ€์ˆ˜์™€ ์„ค๋ช… ๋ณ€์ˆ˜(ํŠน์„ฑ) ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ธฐ๋ฒ•. ์ฃผ๋กœ ์˜ˆ์ธก ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์„ ํ˜• ํšŒ๊ท€๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ๋กœ, ๋‘ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ง์„ (๋˜๋Š” ๊ณ ์ฐจ์›์—์„œ๋Š” ์ดˆํ‰๋ฉด)์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. K-์ตœ๊ทผ์ ‘ ์ด์›ƒ ํšŒ๊ท€ ํšŒ๊ท€ ๋ฌธ์ œ์— KNN ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•œ ๊ฒƒํšŒ๊ท€๋Š” ์—ฐ์†์ ์ธ ๊ฐ’์„ ์˜ˆ์ธกํ•˜๋Š” ๋ฌธ์ œ๋กœ, ๋ถ„๋ฅ˜ ๋ฌธ์ œ์™€ ๋‹ฌ๋ฆฌ ์˜ˆ์ธกํ•˜๋ ค๋Š” ๊ฐ’์ด ์—ฌ๋Ÿฌ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ˆ˜ ๊ฐ’ex) ๊ฒฝ์ œ ์„ฑ์žฅ๋ฅ  ..
๋จธ์‹ ๋Ÿฌ๋‹ํŠน์„ฑ(Feature): ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์„ ํŠน์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์ง‘ ๊ฐ€๊ฒฉ ์˜ˆ์ธก์—์„œ๋Š” ๋ฉด์ , ๋ฐฉ ๊ฐœ์ˆ˜, ์œ„์น˜ ๋“ฑ์ด ํŠน์„ฑ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ถ„๋ฅ˜ ๋ฌธ์ œ์™€ ์ด์ง„ ๋ถ„๋ฅ˜๋จธ์‹ ๋Ÿฌ๋‹ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ๋ถ„๋ฅ˜(Classification) ๋ฌธ์ œ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฌธ์ œ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฉ”์ผ์ด ์ŠคํŒธ์ธ์ง€ ์ŠคํŒธ ์•„๋‹˜์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฌธ์ œ๋Š” ์ด์ง„ ๋ถ„๋ฅ˜(Binary Classification)์— ํ•ด๋‹น์ด์ง„ ๋ถ„๋ฅ˜: ๋‘ ๊ฐœ์˜ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฌธ์ œ (์˜ˆ: ์ด๋ฉ”์ผ์ด ์ŠคํŒธ์ธ์ง€ ์•„๋‹Œ์ง€)๋‹ค์ค‘ ํด๋ž˜์Šค ๋ถ„๋ฅ˜: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฌธ์ œ (์˜ˆ: ๋™๋ฌผ ์ข…๋ฅ˜๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฌธ์ œ) ํ›ˆ๋ จ(Training)๊ณผ ์˜ˆ์ธก(Prediction)ํ›ˆ๋ จ(Training): ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ชจ๋ธ์ด ๋ฐ์ดํ„ฐ๋ฅผ..
์ธ๊ณต์ง€๋Šฅ์ด๋ž€?์‚ฌ๋žŒ์ฒ˜๋Ÿผ ํ•™์Šตํ•˜๊ณ  ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€๋Šฅ์„ ๊ฐ€์ง„ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ๊ฐ„์˜ ์ง€๋Šฅ์„ ๋ชจ๋ฐฉํ•˜๋ ค๋Š” ์‹œ๋„์—์„œ ์‹œ์ž‘๋จ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…๋“ค์„ ์ปดํ“จํ„ฐ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ, ์ผ์ƒ ์ƒํ™œ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ  ์žˆ๋‹ค. ๊ฐ•์ธ๊ณต์ง€๋Šฅ vs ์•ฝ์ธ๊ณต์ง€๋Šฅ๊ฐ•์ธ๊ณต์ง€๋Šฅ(AGI, Artificial General Intelligence)์ธ๊ฐ„๊ณผ ์œ ์‚ฌํ•œ ์ˆ˜์ค€์˜ ์ง€๋Šฅ์„ ๊ฐ€์ง„ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šค์Šค๋กœ ํ•™์Šตํ•˜๊ณ  ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„๋‹ค.ํ˜„์žฌ๋Š” ์—ฐ๊ตฌ ๋‹จ๊ณ„์— ์žˆ์œผ๋ฉฐ, ์‹คํ˜„๋˜์ง€๋Š” ์•Š์•˜๋‹ค.์•ฝ์ธ๊ณต์ง€๋Šฅ(ANI, Artificial Narrow Intelligence)ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํŠนํ™”๋œ AI. ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ AI ์‹œ์Šคํ…œ์€ ์ด ๋ฒ”์ฃผ์— ์†ํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์Œ์„ฑ ์ธ์‹..
์ƒ๋‹จ์œผ๋กœ