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

์ „์ฒด ๊ธ€

(154)
Basic Linear Algebra | ์„ ํ˜•๋Œ€์ˆ˜ ๊ธฐ๋ณธ ์„ ํ˜•๋Œ€์ˆ˜๋Š” ์ผ์ข…์˜ ์–ธ์–ด๋ผ๊ณ  ์ƒ๊ฐ
News Categorization @News Categorization -๋น„์Šทํ•œ ๋‰ด์Šค๋ผ๋ฆฌ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์ปดํ“จํ„ฐ๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ ๋ฌธ์ž -> ์ˆซ์ž ์ˆซ์ž๋กœ ์œ ์‚ฌํ•˜๋‹ค๋Š” ํ‘œํ˜„์„ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? ์œ ์‚ฌํ•˜๋‹ค -> ๊ฐ€๊น๋‹ค ์–ด๋–ค ์ˆซ์ž๋ฅผ ๋ฒกํ„ฐ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•จ ๋ฌธ์ž -> ์ˆซ์ž -> ๋ฒกํ„ฐ @One-hot Encoding(Bag of words) -๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์„œ์— ๋Œ€ํ•œ ๋ฒกํ„ฐ ํ‘œํ˜„ ๊ธฐ๋ฒ• -๋ฌธ์ž๋ฅผ ๋ฒกํ„ฐ๋กœ -ํ•˜๋‚˜์˜ ๋‹จ์–ด๋ฅผ ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค๋กœ ์ธ์‹, ๋‹จ์–ด ์กด์žฌ์‹œ 1 ์—†์œผ๋ฉด 0 -๋‹จ์–ด๋ณ„๋กœ ์ธ๋ฑ์Šค ๋ถ€์—ฌ, ํ•œ ๋ฌธ์žฅ(๋˜๋Š” ๋ฌธ์„œ)์˜ ๋‹จ์–ด ๊ฐœ์ˆ˜๋ฅผ ๋ฒกํ„ฐ๋กœ ํ‘œํ˜„ @์œ ์‚ฌ์„ฑ -> ๊ฑฐ๋ฆฌ ์ธก์ • -Distance measure @Euclidian distance -ํ”ผํƒ€๊ณ ๋ผ์Šค ์ •๋ฆฌ, ๋‘ ์  ์‚ฌ์ด์˜ ์ง์„ ์˜ ๊ฑฐ๋ฆฌ @Cosine distance -๋‘ ์  ์‚ฌ์ด์˜ ๊ฐ๋„ -๋ฌธ์„œ์˜ similarity..
Linear algebra codes @Vector representation of python -Vector๋ฅผ python์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์กด์žฌ # There are various ways to represent vectors in Python vector_a = [1, 2, 10] vector_b = (1, 2, 10) vector_c = {'x':1, 'y':1, 'x':10} print(vector_a, vector_b, vector_c) # [1, 2, 10] (1, 2, 10) {'x': 10, 'y': 1} -์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์€ ์—†์Œ -๊ฐ’์˜ ๋ณ€๊ฒฝ ์œ ๋ฌด, ์†์„ฑ๊ฐ’ ์œ ๋ฌด์— ๋”ฐ๋ผ ์„ ํƒ ๊ฐ€๋Šฅ # Vector calculation u = [2,2] v = [2,3] z = [3,5] result = [sum(i) for i in zip..
Clean code | 4์žฅ ์ฃผ์„ @Clean code | 4์žฅ ์ฃผ์„ -"๋‚˜์œ ์ฝ”๋“œ์— ์ฃผ์„์„ ๋‹ฌ์ง€ ๋งˆ๋ผ. ์ƒˆ๋กœ ์งœ๋ผ." ์ž˜ ๋‹ฌ๋ฆฐ ์ฃผ์„์€ ๊ทธ ์–ด๋–ค ์ •๋ณด๋ณด๋‹ค ์œ ์šฉํ•˜๊ณ , ๊ฒฝ์†”ํ•˜๊ณ  ๊ทผ๊ฑฐ ์—†๋Š” ์ฃผ์„์€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ฌ ์˜ค๋ž˜๋˜๊ณ  ์กฐ์žกํ•œ ์ฃผ์„์€ ์ž˜๋ชป๋œ ์ •๋ณด ํผ๋œจ๋ฆผ -> ๊ฐœ๋ฐœ์ž๋“ค์ด ์ฃผ์„์„ ๊ณ„์†์ ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ์—” ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ํ‘œํ˜„๋ ฅ์ด ํ’๋ถ€ํ•˜๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•  ๋Šฅ๋ ฅ์ด ์žˆ๋‹ค๋ฉด, ์ฃผ์„์€ ๊ฑฐ์˜ ํ•„์š”์น˜ ์•Š์Œ ์• ์ดˆ์— ์ฃผ์„์ด ํ•„์š”์—†๊ฒŒ๋” ๊ฐœ๋ฐœํ•˜๊ธฐ ์ฝ”๋“œ๋งŒ์ด ์ž์‹ ์ด ํ•˜๋Š” ์ผ์„ ์ง„์‹ค๋˜๊ฒŒ ๋งํ•จ(์ •ํ™•ํ•œ ์ •๋ณด ์ œ๊ณตํ•˜๋Š” ์œ ์ผํ•œ ์ถœ์ฒ˜) -์ฃผ์„์€ ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ๋ณด์™„ํ•˜์ง€ ๋ชปํ•œ๋‹ค ํ‘œํ˜„๋ ฅ์ด ํ’๋ถ€ํ•˜๊ณ  ๊น”๋”ํ•˜๋ฉฐ ์ฃผ์„์ด ๊ฑฐ์˜ ์—†๋Š” ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜๊ณ  ์–ด์ˆ˜์„ ํ•˜๋ฉฐ ์ฃผ์„์ด ๋งŽ์ด ๋‹ฌ๋ฆฐ ์ฝ”๋“œ๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์Œ ์ฝ”๋“œ ํ’ˆ์งˆ์ด ๋‚˜์˜๋ฉด ์ฃผ์„์„ ์“ฐ๊ธฐ ๋ณด๋‹ค๋Š” ๊ทธ ์‹œ๊ฐ„์— ์ฝ”๋“œ..
Clean Code | 3์žฅ ํ•จ์ˆ˜ @Clean Code | ํ•จ์ˆ˜ -์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ ๋ช‡ ์ค„ ์ •๋„๋กœ ๋งŒ๋“ค๊ธฐ -๋ธ”๋ก๊ณผ ๋“ค์—ฌ์“ฐ๊ธฐ if๋ฌธ/ else๋ฌธ/ whille๋ฌธ ๋“ฑ์— ๋“ค์–ด๊ฐ€๋Š” ๋ธ”๋ก์€ ํ•œ ์ค„์ด์–ด์•ผ ํ•จ ์ค‘์ฒฉ ๊ตฌ์กฐ๊ฐ€ ์ƒ๊ธธ๋งŒํผ ํ•จ์ˆ˜๊ฐ€ ์ปค์ ธ์„œ๋Š” ์•ˆ ๋จ -ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด๋ผ "ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผ ํ•œ๋‹ค." ์ง€์ •๋œ ํ•จ์ˆ˜ ์ด๋ฆ„ ์•„๋ž˜์—์„œ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ํ•˜๋‚˜์ธ ๋‹จ๊ณ„๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€ ์ž‘์—…๋งŒ ํ•˜๋Š” ๊ฒƒ ํŒ๋‹จ๋ฒ•: ๋‹จ์ˆœํžˆ ๋‹ค๋ฅธ ํ‘œํ˜„์ด ์•„๋‹ˆ๋ผ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•˜๋Š” ์…ˆ -ํ•จ์ˆ˜ ๋‹น ์ถ”์ƒํ™” ์ˆ˜์ค€์€ ํ•˜๋‚˜๋กœ ํ•จ์ˆ˜๊ฐ€ ํ™•์‹คํžˆ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜๋ ค๋ฉด ํ•จ์ˆ˜ ๋‚ด ๋ชจ๋“  ๋ฌธ์žฅ์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋™์ผํ•ด์•ผ ํ•จ ํ•œ ํ•จ์ˆ˜ ๋‚ด์— ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์„ž์œผ๋ฉด ์ฝ”๋“œ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ—ท๊ฐˆ๋ฆผ ..
Data Structure - Collections @Collections -List, Tuple, Dict์— ๋Œ€ํ•œ Python Built-in ํ™•์žฅ ์ž๋ฃŒ ๊ตฌ์กฐ(๋ชจ๋“ˆ) -ํŽธ์˜์„ฑ, ์‹คํ–‰ ํšจ์œจ ๋“ฑ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต -์•„๋ž˜์˜ ๋ชจ๋“ˆ์ด ์กด์žฌ @deque -Stack๊ณผ Queue๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ -List์— ๋น„ํ•ด ํšจ์œจ์ ์ธ ์ž๋ฃŒ ์ €์žฅ ๋ฐฉ์‹ ์ง€์› -deque๋Š” ๊ธฐ์กด list๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ์ œ๊ณต ->์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ deque ์‹ค์Šต) from collections import deque deque_list = deque() for i in range(5): deque_list.append(i) print(deque_list) # deque([0, 1, 2, 3, 4]) deque_list = deque() for i in range(5): deque_list.app..
Clean Code | 2์žฅ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„ @Clean Code | 2์žฅ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„ -์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ ๋ณ€์ˆ˜(ํ˜น์€ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค)์˜ ์กด์žฌ ์ด์œ ? ์ˆ˜ํ–‰ ๊ธฐ๋Šฅ? ์‚ฌ์šฉ ๋ฐฉ๋ฒ•? -> ๋”ฐ๋กœ ์ฃผ์„ ํ•„์š”ํ•˜์ง€ ์•Š๊ฒŒ -์ฝ”๋“œ์˜ ๋‹จ์ˆœ์„ฑ๋ณด๋‹ค๋Š” 'ํ•จ์ถ•์„ฑ'์ด ์ค‘์š” ์ฝ”๋“œ ๋งฅ๋ฝ์ด ์ฝ”๋“œ ์ž์ฒด์— ๋ช…์‹œ์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ -๊ทธ๋ฆ‡๋œ ์ •๋ณด๋ฅผ ํ”ผํ•˜๋ผ ๋„๋ฆฌ ์“ฐ์ด๋Š” ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๋‹จ์–ด๋ฅผ ๋‹ค๋ฅธ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ -> ex) List ๋น„์Šทํ•œ ์ด๋ฆ„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์†Œ๋ฌธ์ž L์ด๋‚˜ ๋Œ€๋ฌธ์ž O ์ฃผ์˜(0, 1 ๊ฐ™์•„ ๋ณด์ž„) -์˜๋ฏธ ์žˆ๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋ผ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ์ฐจ์ด๋ฅผ ์•Œ๋„๋ก ์ด๋ฆ„ ์ง“๊ธฐ -> ex) ์˜ค๋ฅ˜ ํ˜•ํƒœ: getActiveAccount(), getActiveAccounts(), getActiveAccountInfo() -๋ฐœ์Œํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ ex) genymdhms -> generation..
Clean Code | 1์žฅ ๊นจ๋—ํ•œ ์ฝ”๋“œ Clean Code | 1์žฅ ๊นจ๋—ํ•œ ์ฝ”๋“œ -Bjarne Stroustrup(C++ ์ฐฝ์‹œ์ž) ์šฐ์•„ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ -> '๋ณด๊ธฐ์— ์ฆ๊ฑฐ์šด' ๋‚˜์œ ์ฝ”๋“œ๋Š” ๋‚˜์œ ์ฝ”๋“œ๋ฅผ '์œ ํ˜น'ํ•จ -> ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๋ฉด์„œ ์˜คํžˆ๋ ค ๋” ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ฌ ์ฒ ์ €ํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ -> ์„ธ์„ธํ•œ ์‚ฌํ•ญ๊นŒ์ง€ ๊ผผ๊ผผํžˆ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ ํ•œ ๊ฐ€์ง€์— '์ง‘์ค‘' -> ๋‚˜์œ ์ฝ”๋“œ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ์ผ์„ ํ•˜๋ ค๋‹ค๊ฐ€ ์˜๋„๊ฐ€ ๋’ค์„ž์ด๊ณ  ๋ชฉ์  ํ๋ ค์ง -Grady Booch ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ์ž˜ ์“ด ๋ฌธ์žฅ์ฒ˜๋Ÿผ ์ฝํž˜ -> '๊ฐ€๋…์„ฑ' '๋ช…์พŒํ•œ ์ถ”์ƒํ™” -> ์ฝ”๋“œ๋Š” ์ถ”์ธก์ด ์•„๋‹ˆ๋ผ ์‚ฌ์‹ค์— ๊ธฐ๋ฐ˜ํ•ด์•ผ ํ•จ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋‚ด์šฉ๋งŒ ๋‹ด์•„์•ผ ํ•จ -Big Dave Thomas(OTI ์ฐฝ๋ฆฝ์ž, ์ดํด๋ฆฝ์Šค ์ „๋žต์˜ ๋Œ€๋ถ€) ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ์ž‘์„ฑ์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋„ ์ฝ๊ธฐ ์‰ฝ๊ณ  ๊ณ ์น˜๊ธฐ ์‰ฌ์›€ -> '๊ฐ€๋…์„ฑ' + '๊ณ ์น˜๊ธฐ ์‰ฌ์šด..

Tiny Star