728x90

๋ฐ์ดํ„ฐ๋ถ„์„ 26

[DB] ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

5์žฅ. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ œ์•ฝ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ฐœ๋…์  ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ•˜๋‚˜์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์— ์ €์žฅ (๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋‹ค์ค‘ ๊ฐ’ ์†์„ฑ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์ฐจ์ˆ˜๋Š” 6, ์นด๋””๋„๋ฆฌํ‹ฐ๋Š” 4 ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ์šฉ์–ด ๋ฆด๋ ˆ์ด์…˜(relation) 2์ฐจ์› ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ ๊ฒƒ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํŒŒ์ผ(file)์— ๋Œ€์‘ ์†์„ฑ(attribute) ๋ฆด๋ ˆ์ด์…˜์˜ ์—ด = ์• ํŠธ๋ฆฌ๋ทฐํŠธ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํ•„๋“œ(field)์— ๋Œ€์‘ ํˆฌํ”Œ(tuple) ๋ฆด๋ ˆ์ด์…˜์˜ ํ–‰ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ๋ ˆ์ฝ”๋“œ(record)์— ๋Œ€์‘ ๋„๋ฉ”์ธ(domain) ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’์˜ ์ง‘ํ•ฉ ์†์„ฑ ..

[Python] ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(Pandas DataFrame) sys:1: DtypeWarning: Columns have mixed types.Specify dtype option on import or set low_memory=False. ๋ฌด์‹œํ•˜๊ธฐ

column์— NaN๊ฐ’์ด๋‚˜ ์—ฌ๋Ÿฌ type์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์„ž์—ฌ ์žˆ์œผ๋ฉด ์ด์™€ ๊ฐ™์€ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์•Œ๋ ค์ฃผ๋Š” ๋Œ€๋กœ dtype option์œผ๋กœ ํƒ€์ž…์„ ๋ช…์‹œํ•ด์ฃผ๊ฑฐ๋‚˜ low_memory = False๋กœ ์ง€์ •ํ•ด ์ฃผ๋ฉด ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค. pd.read_csv('[ํŒŒ์ผ๋ช…].txt', delimiter = '\t', low_memory=False)

[Python] ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(pandas dataframe) SettingWithCopyWarning ํ•ด๊ฒฐ

๊ธฐ์กด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ธ๋ฑ์‹ฑ ํ›„ ๊ฐ’์„ ์ˆ˜์ •ํ•  ๋•Œ ์ข…์ข… ๋ฐœ์ƒํ•œ๋‹ค. ๊ธฐ์กด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๊ฐ€์ ธ์™€(๋ณต์‚ฌ) ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค ๋•Œ ์›๋ณธ์„ ์ˆ˜์ •ํ•  ์ง€ ๋ณต์‚ฌ๋ณธ์„ ์ˆ˜์ •ํ•  ์ง€ ๋ชฐ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค. ๋‘ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ด๊ณ  ํ•˜๋‚˜๋Š” copy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ! 1. ๊ฒฝ๊ณ  ๋ฌด์‹œ pd.set_option์„ ์‚ฌ์šฉํ•œ ๊ฒฝ๊ณ ๋ฌธ ์ œ๊ฑฐ # SettingWithCopyError --> ์˜ค๋ฅ˜ raise ๋กœ ์ฝ”๋“œ ์‹คํ–‰ X pd.set_option('mode.chained_assignment', 'raise') # SettingWithCopyWarning --> ์‹คํ–‰์€ ๋˜์ง€๋งŒ ๊ฒฝ๊ณ ๋ฌธ ๋œธ pd.set_option('mode.chained_assignment', 'warn') # err..

[Python] ํŒ๋‹ค์Šค concat, append, join, merge ์ฐจ์ด

Pandas concat vs append vs join vs merge Concat gives the flexibility to join based on the axis( all rows or all columns) Append is the specific case(axis=0, join='outer') of concat Join is based on the indexes (set by set_index) on how variable =['left','right','inner','couter'] Merge is based on any particular column each of the two dataframes, this columns are variables on like 'left_on', 'ri..

[RNN] 2. Vanialla RNN, LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit)

์ˆœ์ฐจ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. ๊ธฐ์–ต ์‹œ์Šคํ…œ ๋งŒ์•ฝ ์‹œ๋ฆฌ ๊ฐ™์€ ๊ฐœ์ธ ๋น„์„œ์˜ ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๋Œ€๋‹ต์„ ํ•˜๋ ค๋ฉด ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๊ทธ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ด์ „ ์ž…๋ ฅ์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์€ ๋ฌด๊ธฐ์–ต ์‹œ์Šคํ…œ์ด๋ผ ํ•œ๋‹ค. ์–•์€ ์‹ ๊ฒฝ๋ง(Shallow Neural Network)์ด ๋ฌด๊ธฐ์–ต ์‹œ์Šคํ…œ์˜ ์˜ˆ์‹œ n๋ฒˆ์งธ Time-Step์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ด์ „ ์ž…๋ ฅ์— ์˜ํ–ฅ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (Vanilla Recurrent Network) Vanilla RNN์˜ ๊ตฌ์กฐ๋Š” shallow NN ๊ตฌ์กฐ์— '์ˆœํ™˜(recurrent)'์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์ด๋‹ค. ์ˆœํ™˜: n-1๋ฒˆ์งธ time step์ด n๋ฒˆ์งธ time step์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š” ๊ฒƒ ๊ธฐ์–ต ์‹œ์Šคํ…œ์ด๋ฏ€๋กœ RNN์˜ ์ถœ๋ ฅ์€ ์ด์ „์˜ ๋ชจ๋“  ์ž…๋ ฅ์— ์˜ํ–ฅ..

[RNN] ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (RNN, Recurrent Neural Network) - 1. ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์€ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ๋กœ ๋ฝ‘๊ธฐ ์œ„ํ•œ ์‹ ๊ฒฝ๋ง์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ(Sequential Data)์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ˆœ์ฐจ๋ฐ์ดํ„ฐ๋ž€? ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์งˆ ๊ฒฝ์šฐ ์˜๋ฏธ๊ฐ€ ์†์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ, ์ฆ‰ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐ„์  ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ temporal sequence ์ผ์ •ํ•œ ์‹œ๊ฐ„์ฐจ๋ผ๋ฉด time series ex) DNA ์—ผ๊ธฐ ์„œ์—ด(sequential data), ๊ธฐ์˜จ ๋ณ€ํ™”(temporal sequence), ์ƒ˜ํ”Œ๋ง๋œ ์†Œ๋ฆฌ ์‹ ํ˜ธ(time series) โ€ป Resampling (๋ณด๊ฐ„ + ์ƒ˜ํ”Œ๋ง) Temporal Sequence ์‹ ํ˜ธ๋ฅผ Time Series๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‹ ํ˜ธ๋ฅผ ๋ณด๊ฐ„(interpolation)ํ•˜๊ณ  ์ด๋ฅผ ๊ท ์ผ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ sampling ํ•œ๋‹ค. ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ์™€ ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง ์ˆœ..

[Python] Pandas Dataframe ์ค‘๋ณต ์ œ๊ฑฐ, distinctํ•œ ๊ฐ’ ํ™•์ธ

df.drop_duplicates() df ์ „์ฒด์˜ ์ค‘๋ณต ์ œ๊ฑฐ๋„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ด ๋ผ๋ฆฌ ์ค‘๋ณต ์ œ๊ฑฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์œ„์˜ ๋ฐ์ดํ„ฐ๋Š” pert_iname์ด๋ผ๋Š” ์—ด์— ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ df.drop_duplicates()๋กœ distinctํ•œ ๊ฐ’์€ ๋ช‡ ๊ฐœ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜ 13553๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๊ฐ’์„ ์ œ์™ธํ•˜๋ฉด 6798๊ฐœ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ df.value_counts() ๋ฅผ ์ด์šฉํ•˜๋ฉด distinctํ•œ ๊ฐ’์„ ์ฐพ์•„์ฃผ๋ฉด์„œ ๋ช‡ ๊ฐœ๊ฐ€ ์ค‘๋ณต๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

[MySQL] ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ ํ…Œ์ด๋ธ” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ JOIN ํ•˜๊ธฐ

์ผ๋Œ€๋‹ค, ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ 1:๋‹ค ๊ด€๊ณ„ ํ•œ์ชฝ ํ…Œ์ด๋ธ”์—๋Š” ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์กด์žฌํ•˜๊ณ , ๊ทธ ๊ฐ’๋งŒ ๋Œ€์‘๋˜๋Š” ๋‹ค๋ฅธ ์ชฝ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ด€๊ณ„ EX) ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ์ ์ˆ˜ ํ…Œ์ด๋ธ”, ์ง์› ํ…Œ์ด๋ธ”๊ณผ ์›”๊ธ‰ ํ…Œ์ด๋ธ” ๋‹ค:๋‹ค ๊ด€๊ณ„ ํ•œ ํ•™์ƒ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์•„๋ฆฌ์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๊ณ , ํ•œ ๋™์•„๋ฆฌ์—๋Š” ์—ฌ๋Ÿฌ ํ•™์ƒ์ด ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์–ด ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”์€ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„์ž„. ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„์˜ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”๊ณผ ๋‘ ํ…Œ์ด๋ธ”์ด ์ผ๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ๋งบ๋„๋ก ๊ตฌ์„ฑ EX) ํ•™์ƒ ํ…Œ์ด๋ธ”, ํ•™์ƒ_๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”(ํ•™์ƒํ…Œ์ด๋ธ”๊ณผ ๋™์•„๋ฆฌํ…Œ์ด๋ธ”์˜ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”), ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ” ํ•™์ƒ ํ…Œ์ด๋ธ”, ํ•™์ƒ_๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”, ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ๋ฌธ -- ํ•™์ƒ ํ…Œ์ด๋ธ” drop table if exists stdtbl; create table stdtbl( stdname varch..

DB(Database)/MySQL 2021.02.16
728x90