profile-img
The merit of an action lies in finishing it to the end.
slide-image

vscode๋ฅผ ์ด์šฉํ•ด์„œ git ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ (์ฝ”๋“œ๋ฅผ ๋”ฐ๋กœ ์ž‘์„ฑํ•˜์ง€๋Š” ์•Š๊ณ  ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•œ๋‹ค) ๋‚œ์ƒ ์ฒ˜์Œ ๋ณด๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งž๋‹ฅ๋œจ๋ ธ๋‹ค.

"unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly everything up-to-date"

์ด๋ผ๋Š” ์ฐฝ์ด ๋œจ๋ฉด์„œ ํ‘ธ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

์ธํ„ฐ๋„ท ์˜ค๋ฅ˜์ธ๊ฐ€ ์‹ถ์–ด์„œ ๋‹ค๋ฅธ ์™€์ดํŒŒ์ด๋ฅผ ์ด์šฉํ•˜์˜€์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์—ˆ๋‹ค.

 

๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์˜ค๋ฅ˜์˜ ์›์ธ์„ ํŒŒ์•…ํ–ˆ๋‹ค. 

๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐœ ํŒŒ์ผ์˜ ์ตœ๋Œ€ ์šฉ๋Ÿ‰์ด 1MB์—ฌ์„œ, ์šฉ๋Ÿ‰ ์ดˆ๊ณผํ•œ ํŒŒ์ผ์„ pushํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๋ฒˆ์— ์ฒ˜์Œ์œผ๋กœ 1MB๊ฐ€ ๋„˜๋Š” ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์ด์—ˆ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ตœ๋Œ€ ์šฉ๋Ÿ‰์„ ๋Š˜๋ ค์ฃผ๋ฉด ๋œ๋‹ค.

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  

git config --local http.postBuffer 2048M

 

ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

์ด๊ฒŒ ๋จนํžˆ์ง€ ์•Š์œผ๋ฉด ssh์—์„œ๋„ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. 

git config --local ssh.postBuffer 2048M

 

์ถœ์ฒ˜: https://happy-jjang-a.tistory.com/222

'CS study/๊ธฐํƒ€' Related Articles +

๋‹ค์ด๋ธŒ ๊ฐ€์„ ๊ธฐ์ˆ˜ 2์ฃผ์ฐจ ๊ณผ์ œ - Audio Classification Model (์˜ค๋””์˜ค ๋ถ„๋ฅ˜ ๋ชจ๋ธ) ๋งŒ๋“ค๊ธฐ ๊ณผ์ œ ํ•˜๋Š” ๊ณผ์ •

๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

์šฐ์„ , ๋‚˜๋Š” ๋”ฅ๋Ÿฌ๋‹์„ ๊ทธ๋ ‡๊ฒŒ ์ž˜ ์•„๋Š” ํŽธ์€ ์•„๋‹ˆ๋ผ์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณผ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๋กœ ํ•˜์˜€๊ณ 

๊ทธ ๊ณผ์ •์—์„œ ์ฑ„ํƒ๋œ ๊ฒƒ์ด ๋ฐ”๋กœ CNN ๋ชจ๋ธ์ด๋‹ค.

Tensorflow๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค. (ํ•™๊ต์—์„œ ์‹œํ‚ค๋Š” ๊ณผ์ œ๋Š” ํŒŒ์ดํ† ์น˜๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์—,, ํ…์„œํ”Œ๋กœ์šฐ๋Š” ์ฒ˜์Œ์ด๋‹ค)

 

1) ์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

14๊ฐœ์˜ ์•…๊ธฐ๋“ค๋ณ„ ์†Œ๋ฆฌ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์…‹์ž…๋‹ˆ๋‹ค. ์˜ค๋””์˜ค๋ฅผ MFCC ๊ณ„์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ 13๊ฐœ๋กœ ์„ค์ •ํ•œ MFCC ํ˜•ํƒœ๋กœ ์ „์ฒ˜๋ฆฌํ–ˆ์œผ๋ฉฐ ์ „์ฒ˜๋ฆฌ ๋ฐฉ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜์˜ ์•…๊ธฐ๋ฅผ ๊ณ ๋ฅด๊ณ , ํ•ด๋‹น ์•…๊ธฐ ๋ ˆ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์ค‘ ๋žœ๋คํ•˜๊ฒŒ ํŒŒ์ผ์„ ๊ณจ๋ผ ๊ทธ ์Œ์„ฑ ํŒŒ์ผ ๋‚ด์—์„œ ๊ณต๋ฐฑ ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  0.5์ดˆ๋ฅผ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ๊ณผ์ •์„ ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•ด 56789๋ฒˆ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ค ์ •๊ทœํ™”๋‚˜ ํ‘œ์ค€ํ™”๋„ ๊ฑฐ์น˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋Š” ๋„˜ํŒŒ์ด๋กœ ์ €์žฅ๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„˜ํŒŒ์ด๋ฅผ ์ด์šฉํ•ด ๋ถˆ๋Ÿฌ์™€์ค€๋‹ค.

 

import numpy as np
Xdata = np.load("Xdata.npy")
ydata = np.load("ydata.npy")

 

๊ทธ ํ›„, ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์„ ์ž„ํฌํŠธ ํ•ด์˜จ๋‹ค.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from sklearn.model_selection import train_test_split

 

2) ์ •๊ทœํ™” ์ง„ํ–‰ ๋ฐ ๋ฐ์ดํ„ฐ ๋ถ„ํ• 

๋„˜ํŒŒ์ด ๋ฐฐ์—ด ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒ˜๋ฆฌ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๊ทœํ™”๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด์•˜๋‹ค.

Xdata_normalized = (Xdata - np.mean(Xdata)) / np.std(Xdata)

 

๋˜ํ•œ ํ•™์Šต๊ณผ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์…‹ ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•ด train_test_split์„ ์ด์šฉํ•˜์˜€๋‹ค.

X_train, X_test, y_train, y_test = train_test_split(Xdata_normalized, ydata, test_size = 0.2, random_state = 42)

 

3) ๋ชจ๋ธ ์ƒ์„ฑ ๋ฐ ํ•™์Šต 

model = tf.keras.Sequential([
    tf.keras.layers.Conv1D(64, kernel_size=3, activation='relu', input_shape=X_train.shape[1:]),
    tf.keras.layers.MaxPooling1D(pool_size=2),
    tf.keras.layers.Conv1D(128, kernel_size=3, activation='relu'),
    tf.keras.layers.MaxPooling1D(pool_size=2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(256, activation='relu'),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(y_train.shape[1], activation='softmax')
])

์ผ€๋ผ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ CNN ์ธต์„ ์Œ“์•„์ค€๋‹ค. ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€์šฉ์œผ๋กœ Dropout์„ ์ด์šฉํ•œ๋‹ค.

์ธต์„ ์Œ“๋Š” ๊ธฐ์ค€์ด๋ผ ํ•œ๋‹ค๋ฉด ์‚ฌ์‹ค ์ž˜ ๋ชจ๋ฅด๊ฒ ๊ณ  ์ด๊ฒƒ์ €๊ฒƒ ์กฐํ•ฉํ•ด๋ณด์•˜๋‹ค.

# ๋ชจ๋ธ ์ปดํŒŒ์ผ
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# ๋ชจ๋ธ ํ•™์Šต
history = model.fit(X_train, y_train, epochs=50, batch_size=64)

๋ชจ๋ธ ํ•™์Šต์„ ์œ„์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•œ๋‹ค. ์—ํฌํฌ ์ˆ˜๋Š” ์ฒ˜์Œ์— 20์œผ๋กœ ํ–ˆ๋‹ค๊ฐ€ ์ˆ˜๋ ด์ด ์•ˆ๋๊ธธ๋ž˜ ๋” ํฌ๊ฒŒ ํ•ด์คฌ๋‹ค.

 

4) ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

Epoch 50/50 688/688 [==============================] - 7s 11ms/step - loss: 0.2341 - accuracy: 0.9247

ํ•™์Šต ๊ฒฐ๊ณผ ์ •ํ™•๋„๊ฐ€ 0.9247์ด์—ˆ๋‹ค.

๋” ํ•™์Šต์‹œํ‚ค๋ฉด ์™„์ „ ์ˆ˜๋ ดํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์‹œ๊ฐ„๊ด€๊ณ„์ƒ..

 

Test ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋‹ค์‹œ ํ‰๊ฐ€ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๋Š” accuracy: 0.8739 ์ด์—ˆ๋‹ค. ์•ฝ๊ฐ„ ๊ณผ์ ํ•ฉ์ด ๋œ ๊ฑธ๊นŒ?.? ์‹ถ๊ธฐ๋„...

 

๋‹ค๋ฅธ ํŒ€์›์€ LSTM์œผ๋กœ ํ•˜๊ณ  ๋‚˜๋„ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋Š” LSTM์ด ๋” ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ๋Š”๋ฐ ์ด๋ฏธ CNN์œผ๋กœ ๋„ˆ๋ฌด ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ด์„œ ๋” ์ข‹์•„์งˆ ์ˆ˜ ์žˆ์„์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค!

 

++ ๋”ฅ๋Ÿฌ๋‹ ๊ณต๋ถ€ ์ข€ ํ•ด์•ผ๊ฒ ..๋‹ค

'CS study/๊ธฐํƒ€' Related Articles +

์ด์ง„ ๋ถ„๋ฅ˜๊ธฐ์˜ ์„ฑ๋Šฅ์„ ๊ณ„์‚ฐํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” confusion matrix (ํ˜ผ๋™ํ–‰๋ ฌ) ์„ ๊ทธ๋ ค True positive, True negative, False positive, False negative๋ฅผ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด precision, recall, accuracy๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•  ํด๋ž˜์Šค๊ฐ€ 3๊ฐœ ์ด์ƒ์ด๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ Microaveraging ๊ณผ Macroaveraging์ด๋‹ค. ๋‘˜์˜ ์ฐจ์ด๋ฅผ ํ™•์ธํ•ด๋ณด์ž. 

 

Macroaveraging

๊ตฌํ•˜๊ณ  ์‹ถ์€ ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ์„ฑ๋Šฅ์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๊ทธ ์ดํ›„ ๊ฐ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํ‰๊ท ๊ฐ’์ด ์ตœ์ข… ์„ฑ๋Šฅ์ด ๋œ๋‹ค.

๋งŒ์•ฝ ํด๋ž˜์Šค๊ฐ€ 4๊ฐœ๋ผ๋ฉด, ์ž‘์€ confusion matrix 4๊ฐœ๋ฅผ ๊ทธ๋ฆฌ๊ณ , ์ด 4๊ฐœ์— ๋Œ€ํ•œ ํ‰๊ท ๊ฐ’์œผ๋กœ ์„ฑ๋Šฅ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

Microaveraging

๋ชจ๋“  ํด๋ž˜์Šค์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ confusion matrix๋กœ ๋‚˜ํƒ€๋‚ด์–ด ๊ฐ ์„ฑ๋Šฅ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

Microaveraging ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋œ score๋Š” ํ”ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ ์ˆ˜๋กœ ๊ฒฐ์ •๋œ๋‹ค.

'CS study/๊ธฐํƒ€' Related Articles +

1. ์ƒˆ repository ์ƒ์„ฑ

github์— ๋กœ๊ทธ์ธํ•˜์—ฌ ์ƒ๋‹จ +๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด repository๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

README file ์ถ”๊ฐ€๋ฅผ ํ•ด๋‘๋ฉด ๋‚˜์ค‘์— repository ์„ค๋ช… ์ถ”๊ฐ€ํ•  ๋•Œ ์š”๊ธดํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

repository์˜ ์ฃผ์†Œ๊ฐ€ ์žˆ์–ด์•ผ ํ•ด๋‹น repository์— ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2. ์›ํ•˜๋Š” ํŒŒ์ผ ์œ„์น˜์—์„œ git ์‹คํ–‰

https://git-scm.com/

 

Git

 

git-scm.com

์œ„ ํŽ˜์ด์ง€์—์„œ git์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์„ค์น˜ํ•œ๋‹ค.

์—…๋กœ๋“œ๋ฅผ ์›ํ•˜๋Š” ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋ฅผ ์—ด๊ณ  ๋นˆ ๊ณต๊ฐ„์— ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜์—ฌ Git Bash Here๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

3. git init

์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.

git init

 

4. git add

git add test.txt

์›ํ•˜๋Š” ํŒŒ์ผ์„ git add ๋‹ค์Œ์— ์ž…๋ ฅํ•ด์ค€๋‹ค.

ํ•ด๋‹น ์œ„์น˜์˜ ๋ชจ๋“  ํŒŒ์ผ์„ addํ•˜๋ ค๋ฉด . ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

5. git commit

git commit -m "๋ฉ”์‹œ์ง€ ๋‚ด์šฉ"

์ปค๋ฐ‹ํ•  ์ค€๋น„๋ฅผ ํ•œ๋‹ค. ์ ๊ณ  ์‹ถ์€ ๋ฉ”์‹œ์ง€ ๋‚ด์šฉ์„ ๋”ฐ์˜ดํ‘œ ์•ˆ์— ์ ๋Š”๋‹ค.

 

6. git remote add origin

git remote add origin ์ฃผ์†Œ

์›๊ฒฉ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐํ•œ๋‹ค. ์—ฐ๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด github repository ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

๋‹จ! git ํ”„๋กœ๊ทธ๋žจ์—์„œ Ctrl+V๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋‹ˆ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์œผ๋กœ ๋ถ™์—ฌ๋„ฃ์ž.

 

8. git push

git push origin master

๋Œ€๋ง์˜ push ์ž‘์—…! ์›๊ฒฉ ์ €์žฅ์†Œ์— ์šฐ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€ํ•ด๋’€๋˜ ํŒŒ์ผ๋“ค์„ ์—…๋กœ๋“œํ•˜์ž.

main ๋ถ€๋ถ„์— ๋‹ค๋ฅธ branch ์ด๋ฆ„์„ ์ ์œผ๋ฉด ๊ทธ branch๋กœ ์—…๋กœ๋“œ๊ฐ€ ๋œ๋‹ค.

์ค‘๊ฐ„ ์˜ค๋ฅ˜๋Š” ๋ฌด์‹œ ๋ฐ”๋žŒ

https://github.com/iamnotwhale/testtest

์—…๋กœ๋“œ ์„ฑ๊ณตํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

GitHub - iamnotwhale/testtest

Contribute to iamnotwhale/testtest development by creating an account on GitHub.

github.com

์•„์ง๋„ git ์“ฐ๋ฉด์„œ ์˜ค๋ฅ˜ ๋งŽ์ด ๋‚˜์˜ค๋Š” ๋‚˜์ง€๋งŒ ใ… ใ…  ์ผ๋‹จ ์—…๋กœ๋“œ ๊ณผ์ •์ด๋ผ๋„ ๋œ ํ—ท๊ฐˆ๋ฆฌ๋ผ๊ณ  ์ž‘์„ฑํ•ด๋ณธ๋‹ค.

๋‹ค์Œ์—๋Š” ๋‚ด๊ฐ€ git ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋งŒ๋‚œ ์˜ค๋ฅ˜๋“ค์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

'CS study/๊ธฐํƒ€' Related Articles +

๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜

๋ฐ์ดํ„ฐ๋Š” ํฌ๊ฒŒ ๋ฒ”์ฃผํ˜•, ์ˆ˜์น˜ํ˜• ๋‘ ๊ฐ€์ง€ ๋ถ„๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ฒ”์ฃผ/์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ๊ฐ์˜ ์ด๋ฆ„์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜๋‹ค.

ex) ์„ฑ๋ณ„ - ์—ฌ์„ฑ, ๋‚จ์„ฑ / ํ•™๋ ฅ - ์ดˆ์กธ, ์ค‘์กธ, ๋Œ€์กธ, ๋Œ€ํ•™์›์กธ / ์ถœ์‹  ํ•™๊ต - ๊ณ ๋ ค๋Œ€ํ•™๊ต, ์—ฐ์„ธ๋Œ€ํ•™๊ต, ...

๋ฐ˜๋ฉด ์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ˆซ์ž๋กœ ํ‘œ์‹œ๋˜๋Š” ์ž๋ฃŒ๋“ค์ด๋‹ค.

ex) ๋‚˜์ด - 1์‚ด, 2์‚ด, ... / ํ‚ค - 160cm, 161cm, ... / ๋ชธ๋ฌด๊ฒŒ - 50kg, 51kg, ...

 

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ(์งˆ์  ์ž๋ฃŒ)

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋˜ ์ˆœ์œ„ํ˜•, ๋ช…๋ชฉํ˜•์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ํ•˜์œ„ ๋ถ„๋ฅ˜๋กœ ๋‹ค์‹œ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

 

์ˆœ์œ„ํ˜• ๋ฐ์ดํ„ฐ๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ณ„๋กœ ์ˆœ์œ„๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋งŒ์กฑ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด, 5์ ๊ณผ 1์ ์€ ๋™๋“ฑํ•œ ์ž๊ฒฉ์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ณดํ†ต 5์ ์ด 1์ ๋ณด๋‹ค ๋” ๋†’์€ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋งŒ์กฑ๋„ ๋ฐ์ดํ„ฐ๋Š” ์ˆœ์œ„ํ˜• ๋ฐ์ดํ„ฐ์ด๋‹ค.

๋ช…๋ชฉํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜๋Œ€๋กœ ๊ฐ ๋ฐ์ดํ„ฐ๋ณ„ ์ˆœ์œ„๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค.

์„ฑ๋ณ„ ๋ฐ์ดํ„ฐ๋Š” ์—ฌ์„ฑ๊ณผ ๋‚จ์„ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ๋‘˜ ์‚ฌ์ด์˜ ์ˆœ์œ„๋ฅผ ๋งค๊ธธ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ช…๋ชฉํ˜• ๋ฐ์ดํ„ฐ์ด๋‹ค.

 

์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ(์–‘์  ์ž๋ฃŒ)

์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ ์—ญ์‹œ ์ด์‚ฐํ˜•, ์—ฐ์†ํ˜•์ด๋ผ๋Š” ๋‘ ํ•˜์œ„ ๋ถ„๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์‚ฐํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๋Š์–ด์ง์ด ์žˆ๋‹ค.

๋ฌผ๊ฑด์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์€ ์˜ˆ์‹œ๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค. 1๊ฐœ์™€ 2๊ฐœ ์‚ฌ์ด์ธ ๊ฐœ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ฌผ๊ฑด์˜ ๊ฐœ์ˆ˜๋Š” ์ด์‚ฐํ˜• ๋ฐ์ดํ„ฐ์ด๋‹ค.

๋ฐ˜๋ฉด ์—ฐ์†ํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์— ๋Š์–ด์ง์ด ์—†๋‹ค.

ํ‚ค๋Š” 160cm์™€ 161cm ์‚ฌ์ด์— ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์—ฐ์†์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”ฐ๋ผ์„œ ์—ฐ์†ํ˜• ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•œ๋‹ค.

 

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ seaborn, matplotlib์„ ์ด์šฉํ•œ๋‹ค.

import seaborn as sns
import matplotlib.pyplot as plt

data.csv
0.00MB

์ƒ๋‹จ์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

 

1) ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ 1๊ฐœ

๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋‚˜ ์›๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๋ง‰๋Œ€๊ทธ๋ž˜ํ”„์˜ ๊ฒฝ์šฐ pandas์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ plot.bar()๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

image = df['grade'].value_counts().plot.bar()
grade ๋ณ€์ˆ˜๋Š” 1, 2, 3, 4, 5๋“ฑ๊ธ‰ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋„์ถœ๋œ๋‹ค.

๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์—๋Š” seaborn์˜ ์นด์šดํŠธ๋„ํ‘œ sns.countplot()์ด ์žˆ๋‹ค.

sns.countplot(x = 'grade', data = df)

์›๊ทธ๋ž˜ํ”„๋Š” plt.pie()๋ฅผ ์ด์šฉํ•œ๋‹ค.

plt.pie(x = df['grade'].value_counts(), labels = [1, 2, 3, 4, 5], autopct='%.1f%%')

 

2) ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜ + ์ˆ˜์น˜ํ˜• ๋ณ€์ˆ˜ ์‹œ๊ฐํ™”

โ‘  sns.lineplot(): ๋ช…๋ชฉํ˜• + ์ˆ˜์น˜ํ˜•(์—ฐ์†ํ˜• + ์ด์‚ฐํ˜•)

โ‘ก sns.scatterplot(): ๋ช…๋ชฉํ˜• + ์ˆ˜์น˜ํ˜•(์—ฐ์†ํ˜• + ์—ฐ์†ํ˜•)

โ‘ข sns.barplot(): ๋ช…๋ชฉํ˜• + ์—ฐ์†ํ˜•

โ‘ฃ sns.pointplot(): ๋ช…๋ชฉํ˜• + ์—ฐ์†ํ˜•

โ‘ค sns.boxplot(): ๋ช…๋ชฉํ˜• + ์—ฐ์†ํ˜• 

โ‘ฅ sns.violinplot(): ๋ช…๋ชฉํ˜• + ์—ฐ์†ํ˜•

๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ๊ฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋•Œ์— ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ์‹œ๊ฐํ™” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค.

์ด์ค‘์—์„œ scatterplot์„ ํ•œ ๋ฒˆ ๊ทธ๋ ค๋ณด์ž.

sns.scatterplot(x = 'weight', y = 'height', data = df, hue = 'grade')

weight์™€ height ์‚ฌ์ด์˜ scatterplot์„ ๊ทธ๋ ธ์ง€๋งŒ, hue๋ฅผ ํ†ตํ•ด grade๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ํ‘œ์‹œํ•˜์˜€๋‹ค.

grade๋Š” ๋ฒ”์ฃผํ˜• ๋ณ€์ˆ˜์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ˆ˜์น˜ํ˜•์ด๋ฏ€๋กœ ๋ฒ”์ฃผํ˜•, ์ˆ˜์น˜ํ˜• ์‚ฌ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

 

์ˆ˜์น˜ํ˜• ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

1) ์ˆ˜์น˜ํ˜• ๋ณ€์ˆ˜ 1๊ฐœ

ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๊ทธ๋ ค์„œ ์ˆ˜์น˜ํ˜• ๋ณ€์ˆ˜๋ฅผ ์‹œ๊ฐํ™”ํ•ด๋ณด์ž. plt.hist()๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

plt.hist(df['height'])

๊ตฌ๊ฐ„์˜ ๊ฐœ์ˆ˜๋Š” hist์˜ ์ธ์ž์ธ bins์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

ํžˆ์Šคํ† ๊ทธ๋žจ์— ํ™•๋ฅ ๋ฐ€๋„ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ทธ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค. sns.displot()๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

sns.distplot(df['weight'])

sns.boxplot()์„ ํ†ตํ•ด ๋ฐ•์Šคํ”Œ๋กฏ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. min, max, Q1, Q2, Q3, outlier๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

plt.figure(figsize = (6, 8))
sns.boxplot(y = 'weight', data = df)
plt.show()

 

2) ์ˆ˜์น˜ํ˜• ๋ณ€์ˆ˜ 2๊ฐœ

โ‘  sns.lineplot(): ์—ฐ์†ํ˜• + ์ด์‚ฐํ˜•

โ‘ก sns.scatterplot(): ์—ฐ์†ํ˜• + ์—ฐ์†ํ˜•

โ‘ข sns.regplot(): ์—ฐ์†ํ˜•+ ์—ฐ์†ํ˜•

๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ๊ฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ๊ฐํ™”๋ฅผ ํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ์ž˜ ๋“œ๋Ÿฌ๋‚˜๋Š”์ง€๋Š” ์—ฐ์Šตํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

๋”๋ณด๊ธฐ
'CS study/๊ธฐํƒ€' Related Articles +
1