๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(80)
[Level 2] ๊ด„ํ˜ธ ๋ณ€ํ™˜ (Python) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ด„ํ˜ธ ๋ณ€ํ™˜ ์นด์นด์˜ค์— ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋กœ ์ž…์‚ฌํ•œ ์ฝ˜์€ ์„ ๋ฐฐ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์—ญ๋Ÿ‰ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ฌธ์ œ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋ผ๋Š” ์—…๋ฌด ๊ณผ์ œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์†Œ์Šค๋ฅผ ์ปด๏ฟฝ programmers.co.kr def is_correct(b): stack = [] for i in b: if i == '(': stack.append(i) elif stack: stack.pop() return not stack def detach(b): lst_b = list(b) cnt_l = 0 cnt_r = 0 for i in b: if i == '(': cnt_l += 1 else: cnt_r += 1 if cnt_l == cnt_r: break u = b[:cnt_l+cnt_r]..
[Level 2] ์‚ผ๊ฐ ๋‹ฌํŒฝ์ด (Python) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์‚ผ๊ฐ ๋‹ฌํŒฝ์ด 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr def solution(n): answer = [] mtx = [[0]*(i+1) for i in range(n)] i = -1 j = 0 num = 0 while True: for _ in range(n): num += 1 i += 1 mtx[i][j] = num n -= 1 if n == 0: break for _ in range(n): num += 1 j += 1 mtx[i][j] = num n -= 1 if n == 0: break for _ in range(n..
[Level 2] ์นดํŽซ (Python) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์นดํŽซ Leo๋Š” ์นดํŽซ์„ ์‚ฌ๋Ÿฌ ๊ฐ”๋‹ค๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ค‘์•™์—๋Š” ๋…ธ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ณ  ํ…Œ๋‘๋ฆฌ 1์ค„์€ ๊ฐˆ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋Š” ๊ฒฉ์ž ๋ชจ์–‘ ์นดํŽซ์„ ๋ดค์Šต๋‹ˆ๋‹ค. Leo๋Š” ์ง‘์œผ๋กœ ๋Œ์•„์™€์„œ ์•„๊นŒ ๋ณธ ์นดํŽซ์˜ ๋…ธ๋ž€์ƒ‰๊ณผ ๏ฟฝ๏ฟฝ programmers.co.kr import math def solution(brown, yellow): total = brown + yellow m, n = [], [] for i in range(1, math.floor(math.sqrt(total)) + 1): if divmod(total, i)[1] == 0: n.append(i) m.append(int(total/i)) for i in range(len(n)): if 2*(m[i] + n[i]) - 4 == brown: ret..
[Level 2] ๋‹ค์Œ ํฐ ์ˆซ์ž (Python) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋‹ค์Œ ํฐ ์ˆซ์ž ์ž์—ฐ์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด 1. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” n๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด 2. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž์™€ n์€ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ 1์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ programmers.co.kr def solution(n): n_bin = bin(n)[2:] if len(set(n_bin)) == 1: return(int('10' + n_bin[1:], 2)) one_cnt = n_bin.count('1') while(True): n += 1 if bin(n)[2:].count('1') == one_cnt: return(n) โ–ท n์˜ ์ด์ง„์ˆ˜๊ฐ€ ๋ชจ๋‘ 1์ธ ๊ฒฝ์šฐ์™€ ์•„๋‹Œ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. โ–ท n์˜ ์ด์ง„์ˆ˜๊ฐ€ ๋ชจ๋‘ 1์ธ..
๋ฒ ์ด์ง€์•ˆ ์ ‘๊ทผ(Bayesian approach)์ด ํ•„์š”ํ•œ ์ด์œ  โ–ก Example: Polynomial Curve Fitting ์‚ฌ์ธ ํ•จ์ˆ˜์— ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ์— 1๋ถ€ํ„ฐ 20์ฐจ ๋‹คํ•ญ ํ•จ์ˆ˜ ๋ชจํ˜•์„ ์ ํ•ฉ ํ›„, ๊ฒฐ๊ณผ์— ๋Œ€ํ•˜์—ฌ ๋ถ„์„ํ•˜์—ฌ๋ผ. ๋…ธ์ด์ฆˆ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋‹คํ•ญ ํ•จ์ˆ˜ ๋ชจํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. โ–ท ๋‹คํ•ญ ํ•จ์ˆ˜ ๋ชจํ˜•์˜ ๋ชจ์ˆ˜์˜ ๊ฐœ์ˆ˜๋Š” ์ฐจ์ˆ˜์˜ ๊ฐœ์ˆ˜์— 1์„ ๋”ํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. โ–ท ์ฐจ์ˆ˜๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ๋†’์€ ์ž์œ ๋„๋ฅผ ๊ฐ€์ง„ ๋น„์„ ํ˜• ์ ํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฐจ์ˆ˜๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ์ž์œ ๋„๊ฐ€ ๋†’์•„์ ธ ์˜ค๋ฒ„ํ”ผํŒ… ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ ์‹œ, ์ ์ ˆํ•œ ์ˆ˜์˜ ์ฐจ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋‹ค์Œ์€ 1์ฐจ๋ถ€ํ„ฐ 20์ฐจ ๋‹คํ•ญ ํ•จ์ˆ˜ ๋ชจํ˜•์— ์ ํ•ฉํ•œ ๊ฒฐ๊ณผ์ด๋‹ค. โ–ท ํŒŒ๋ž€ ์ ์€ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๊ณ , ์ดˆ๋ก ์„ ์€ ์‹ค์ œ ์ƒ์„ฑ์— ์‚ฌ์šฉ๋œ ์‚ฌ์ธ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. โ–ท ๋‹ค..
๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) (3) ๋ณธ ํฌ์ŠคํŒ…์€ ์นด์ด์ŠคํŠธ ๋ฌธ์ผ์ฒ  ๊ต์ˆ˜๋‹˜์˜ ์ธ๊ณต์ง€๋Šฅ ๋ฐ ๊ธฐ๊ณ„ํ•™์Šต ๊ฐœ๋ก  2์˜ ๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. Potential functions 2. Absorption in clique graph 3. Example of belief propagation 1. Potential functions โ–ท Potential function์€ ์ž ์žฌ์ ์œผ๋กœ ํ™•๋ฅ ์ด ๋˜๋Š” ํ•จ์ˆ˜๋กœ์จ, ์•„์ง ํ™•๋ฅ ์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” Belief propagation์„ ํ†ตํ•ด ํ™•๋ฅ ๋กœ์จ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์ดํ›„์— ๋‹ค๋ฃจ๊ธฐ๋กœ ํ•˜๊ฒ ๋‹ค. โ–ท ์œ„์˜ ์˜ˆ๋Š” Potential function์„ ์„ค๋ช…ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ..
Leaflet์„ ์ด์šฉํ•œ ์ง€๋„ ์‹œ๊ฐํ™” R์˜ Leaflet์„ ์ด์šฉํ•˜์—ฌ ์ง€๋„๋ฅผ ์‹œ๊ฐํ™” ํ•ด๋ณด์ž. ์šฐ๋ฆฌ๋‚˜๋ผ์˜ ํ–‰์ •๊ตฌ์—ญ์„ ์‹œ๊ฐํ™” ํ•  ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ(www.gisdeveloper.co.kr/?p=2332)์—์„œ ์–ป์€ 2020๋…„ 5์›”์˜ ์‹œ๊ตฐ๊ตฌ ํ–‰์ •๊ตฌ์—ญ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด๋‹ค. In: library(leaflet) library(raster) library(htmltools) data_map = shapefile('../input/SIG.shp') โ–ท leaflet์€ ์ง€๋„์˜ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•ด, raster์€ ํ™•์žฅ์ž๊ฐ€ shp์ธ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด, htmltools๋Š” ์‹œ๊ฐํ™”๋œ ์ง€๋„ ์œ„์— ๋‚˜ํƒ€๋‚˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. In: head(data_map@data) head(data_map@plotOrder) # head(data_map@polyg..
๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) (2) ๋ณธ ํฌ์ŠคํŒ…์€ ์นด์ด์ŠคํŠธ ๋ฌธ์ผ์ฒ  ๊ต์ˆ˜๋‹˜์˜ ์ธ๊ณต์ง€๋Šฅ ๋ฐ ๊ธฐ๊ณ„ํ•™์Šต ๊ฐœ๋ก  2์˜ ๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. Factorization of Bayesian network 2. Conditional probability 3. Most probable assignment 4. Marginalization and elimination 5. Variable elimination 1. Factorization of Bayesian network โ–ท ๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ์˜ Factorization์€ Full joint distribution์„ ๊ตฌํ•  ๋•Œ, ๊ฐœ๋ณ„ ๋…ธ๋“œ์˜ Conditional probability์˜ Condition์— ํฌํ•จ๋˜๋Š” ๋…ธ๋“œ๋ฅผ ๊ฐ..
๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) (1) ๋ณธ ํฌ์ŠคํŒ…์€ ์นด์ด์ŠคํŠธ ๋ฌธ์ผ์ฒ  ๊ต์ˆ˜๋‹˜์˜ ์ธ๊ณต์ง€๋Šฅ ๋ฐ ๊ธฐ๊ณ„ํ•™์Šต ๊ฐœ๋ก  2์˜ ๋ฒ ์ด์ง€์•ˆ ๋„คํŠธ์›Œํฌ(Bayesian network) ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฃฐ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. Conditional vs. Marginal independence 2. Bayesian network 3. Interpretation of Bayesian network 4. Typical local structures 5. Bayes ball algorithm 1. Conditional vs. Marginal independence โ–ท Conditional independence์™€ Marginal independence๋Š” ๋‘˜ ๋‹ค ๋…๋ฆฝ์„ ์˜๋ฏธํ•˜์ง€๋งŒ, ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. Marginal independence๋Š” P(A|B) ..
ํ˜ผํ•ฉ ๋ชจ๋ธ(Mixture model) ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ์˜ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ํ™•์ธํ•˜๊ณ , ์ด๋ฅผ ์ ํ•ฉํ•  ๋ถ„ํฌ์— ๋Œ€ํ•˜์—ฌ ์ƒ๊ฐํ•ด ๋ณด์ž. In: data = read.csv('../input/mixture.csv', header = F) y = data$V1 n = length(y) hist(y, breaks = 20) Out: โ–ท ์ผ๋ฐ˜์ ์ธ ๋ถ„ํฌ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ -2์™€ 1 ๊ทผ์ฒ˜์— ๋‘ ๊ฐœ์˜ ๋ด‰์šฐ๋ฆฌ๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ์ •๊ทœ๋ถ„ํฌ, ์ง€์ˆ˜๋ถ„ํฌ, ๊ฐ๋งˆ๋ถ„ํฌ๋Š” ๋‹จ๋ด‰ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์œ„์˜ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•  ๊ฒฝ์šฐ, ๋‘ ๊ฐœ์˜ ๋ด‰์šฐ๋ฆฌ์— ๋Œ€ํ•ด ์ ํ•ฉํ•œ ๋ถ„ํฌ๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค. โ–ถ ํ˜ผํ•ฉ ๋ชจ๋ธ(Mixture model)์€ ๋‘ ๊ฐœ์ด์ƒ์˜ ๋ถ„ํฌ๋ฅผ ํ•ฉ์ณ์„œ ๋งŒ๋“  ๋ชจ๋ธ๋กœ ๊ธฐ์กด ๋ถ„ํฌ์— ๋น„ํ•˜์—ฌ ์ž์œ ๋„ ๋†’์€ ์ ํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋˜ํ•œ ๋ณต์žกํ•œ ๋ถ„..
์ž„์˜์ ˆํŽธ ๋ชจ๋ธ(Random intercept model) R์˜ car ํŒจํ‚ค์ง€์˜ Leinhardt ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž„์˜์ ˆํŽธ ๋ชจ๋ธ(Random intercept model)์„ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์ž. ์ˆ˜ํ–‰๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ๋ฐ์ดํ„ฐ ํ™•์ธ 2. ๋ชจ๋ธ๋ง 3. ๋ชจ๋ธํ™•์ธ 1. ๋ฐ์ดํ„ฐ ํ™•์ธ In: library(car) data('Leinhardt') pairs(Leinhardt) head(Leinhardt) Out: income infant region oil Australia 3426 26.7 Asia no Austria 3350 23.7 Europe no Belgium 3346 17.0 Europe no Canada 4751 16.8 Americas no Denmark 5029 13.5 Europe no Finland 3312 10.1 Europe no โ–ท ์—ฐ์†ํ˜• ..
Part 3 - 03. SQL ๊ธฐ๋ณธ๊ณผ ํ™œ์šฉ โ–ก ์˜ตํ‹ฐ๋งˆ์ด์ €(Optimizer) - SQL๋ฌธ์— ๋Œ€ํ•ด์„œ ์‹คํ–‰๊ณ„ํš์„ ์ˆ˜๋ฆฝ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹คํ–‰ ๊ณ„ํš ์ค‘์—์„œ ์ตœ์ €๋น„์šฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ„ํš์„ ์„ ํƒํ•ด์„œ SQL ์‹คํ–‰ โ–ก ์˜ตํ‹ฐ๋งˆ์ด์ € ์—”์ง„ - Query Transformer: SQL๋ฌธ์„ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜ตํ‹ฐ๋งˆ์ง€์–ด๊ฐ€ ๋ณ€ํ™˜ / ๋ณ€ํ™˜๋˜๊ธฐ ์ „๊ณผ ๊ฒฐ๊ณผ๋Š” ๋™์ผ - Estimator: ํ†ต๊ณ„์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQL ์‹คํ–‰๋น„์šฉ์„ ๊ณ„์‚ฐ - Plan Generator: SQL์„ ์‹คํ–‰ํ•  ์‹คํ–‰ ๊ณ„ํš ์ˆ˜๋ฆฝ โ–ก ์ธ๋ฑ์Šค - ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต โ–ก ์ธ๋ฑ์Šค ํŠธ๋ฆฌ ๊ตฌ์กฐ - Root, Branch, Double โ–ก Nested Loop - Random Access๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒ โ–ก Sort Merge - SORT๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒ โ–ก High Water mark - ..