์›๊ธ€ : https://arstechnica.com/ai/2024/11/what-if-ai-doesnt-just-keep-getting-better-forever/ 

 

What if AI doesn’t just keep getting better forever?

New reports highlight fears of diminishing returns for traditional LLM training.

arstechnica.com

 

์ธ๊ณต์ง€๋Šฅ์˜ ๋ฐœ์ „์€ ์–ด๋””๊นŒ์ง€์ผ๊นŒ? 

๋ณธ ์•„ํ‹ฐํด์—์„œ๋Š” AI์˜ ๋ฐœ์ „์ด ํ•œ๊ณ„์— ๋ถ€๋”ชํžˆ๊ณ  ์žˆ๋‹ค๋Š” ๋ง์„ ์ „ํ•œ๋‹ค. 

OpenAI์˜ ์ฐจ๊ธฐ ๋ชจ๋ธ์ด ์ด์ „ ๋ชจ๋ธ์— ๋น„ํ•ด ์„ฑ๋Šฅํ–ฅ์ƒ์ด ํฌ์ง€ ์•Š๋‹ค๋Š” ๋‚ด๋ถ€ ๋ณด๊ณ ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ AI ๊ธฐ์ˆ ์ด ์ด๋ฏธ ํ”Œ๋ž˜ํ† ์— ๋„๋‹ฌํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

1. ์„œ๋ก  ๐Ÿ“ˆ AI์˜ ๋ฐœ์ „ ํ•œ๊ณ„ ๊ฐ€๋Šฅ์„ฑ

  • AI๋ชจ๋ธ์˜ ์„ฑ์žฅ์€ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋˜๊ณ  ์žˆ์œผ๋‚˜, ์ตœ๊ทผ์—๋Š” ์ด๋Ÿฌํ•œ ์„ฑ์žฅ์ด ์ง€์†๋  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์šฐ๋ ค๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. 
  • ํŠนํžˆ, ๊ธฐ์กด ๋ฐฉ๋ฒ•์œผ๋กœ ํ›ˆ๋ จ๋œ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์˜ ๋Šฅ๋ ฅ์ด ์ด๋ฏธ ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์ œ๊ธฐ๋˜๊ณ  ์žˆ๋‹ค. 

2. ๐Ÿค– AI ๋ฐœ์ „์˜ ํ•œ๊ณ„์™€ ๋ฏธ๋ž˜

  • Open AI์˜ ๋‹ค์Œ ๋ชจ๋ธ์ธ Orion์€ GPT-3์™€ GPT-4์‚ฌ์ด์˜ ์„ฑ๋Šฅ ์ฐจ์ด์— ๋น„ํ•ด ๋” ์ž‘์€ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์ด๊ณ  ์žˆ๋‹ค. 
  • ์ผ๋ถ€ ์ž‘์—…์—์„œ Orion์€ ์ด์ „ ๋ชจ๋ธ๋ณด๋‹ค ์•ˆ์ •์ ์œผ๋กœ ์šฐ์ˆ˜ํ•˜์ง€ ์•Š๋‹ค๋Š” ์—ฐ๊ตฌ์ž๋“ค์˜ ์ง€์ ์ด ์žˆ๋‹ค. 
  • Open AI์˜ ๊ณต๋™ ์ฐฝ๋ฆฝ์ž ์ด๋ฆฌ์•ผ ์ˆ˜์ธ ์ผ€๋ฒ„๋Š” LLM์ด ์ „ํ†ต์ ์ธ ์‚ฌ์ „ ํ›ˆ๋ จ์—์„œ ํ•œ๊ณ„๋ฅผ ๊ฒช๊ณ  ์žˆ๋‹ค๊ณ  ์šฐ๋ ค๋ฅผ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค.
  • ๊ทธ๋Š” ๋” ์ด์ƒ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋‚˜ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋Š” ์„ฑ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ธฐ ์–ด๋ ค์šด ์‹œ์ ์— ์žˆ๋‹ค๊ณ  ๊ฐ•์กฐํ•˜์˜€๋‹ค.

2.1. AI ๋ฐœ์ „ ์†๋„์˜ ๋‘”ํ™”์— ๋Œ€ํ•œ ์šฐ๋ ค

  • Open AI๋‚ด๋ถ€์—์„œ๋Š” AI๊ธฐ์ˆ ์˜ ๋ฐœ์ „ ์†๋„๊ฐ€ ์ €ํ•˜๋˜๊ณ  ์žˆ๋‹ค๋Š” ์šฐ๋ ค๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค.
  • ์ด๋Š” ์ตœ๊ทผ์˜ Weekend Report์—์„œ ํšจ๊ณผ์ ์œผ๋กœ ์š”์•ฝ๋˜์—ˆ์œผ๋ฉฐ, ๋‚ด๋ถ€์ž์˜ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  ์žˆ๋‹ค. 

2.2. AI ๋ชจ๋ธ์˜ ์„ฑ๊ณผ ๊ฐ์†Œ

  • Open AI์˜ ๋‹ค์Œ ๋ชจ๋ธ์ธ Orion์€ GPT-3์™€ GPT-4์‚ฌ์ด์—์„œ ๊ฒฝํ—˜ํ•œ ์„ฑ๊ณผ ํ–ฅ์ƒ๋ณด๋‹ค ์ž‘์€ ์„ฑ๊ณผ ํ–ฅ์ƒ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.
  • ์ผ๋ถ€ ์ž‘์—…์—์„œ๋Š” ์ƒˆ๋กœ์šด ๋ชจ๋ธ์ด ์ด์ „ ๋ชจ๋ธ๋ณด๋‹ค ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐœ์„ ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์—ฐ๊ตฌ์ž๋“ค์˜ ์˜๊ฒฌ์ด ์žˆ๋‹ค.

2.3. AI์˜ ๋ฐœ์ „ ํ•œ๊ณ„์— ๋Œ€ํ•œ ์šฐ๋ ค

  • Open AI์˜ ๊ณต๋™ ์ฐฝ๋ฆฝ์ž์ธ ์ผ์•ผ ์ˆ˜์ธ ์ผ€๋ฒ„๋Š” LLM์ด ๊ธฐ์กด์˜ ์‚ฌ์ „ ํ›ˆ๋ จ ๋ฐฉ์‹์—์„œ ๋ฐœ์ „์˜ ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค.
  • ๊ทธ๋Š” 2010๋…„๋Œ€๊ฐ€ "์Šค์ผ€์ผ๋ง์˜ ์‹œ๋Œ€"์˜€๋‹ค๊ณ  ์„ค๋ช…ํ•˜๋ฉฐ, ์ปดํ“จํŒ… ์ž์›๊ณผ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋ธ ๊ฐœ์„ ์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ๋‹ค. 

2.4. AI์˜ ๋‹ค์Œ ๋‹จ๊ณ„

  • ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ๊ฒฝ์ด๋กœ์›€๊ณผ ๋ฐœ๊ฒฌ์˜ ์‹œ๋Œ€์— ๋‹ค์‹œ ๋Œ์•„์™”๋‹ค. 
  • ๋ชจ๋“  ์ด๊ฐ€ ๋‹ค์Œ ํ˜์‹ ์„ ์ฐพ๊ณ  ์žˆ์œผ๋ฉฐ, ์ ์ ˆํ•œ ๋ฐฉํ–ฅ์œผ๋กœ์˜ ํ™•์žฅ์ด ๊ทธ ์–ด๋А ๋•Œ๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค.

 

3. ๊ฒฐ๋ก  ๐Ÿ“‰ AI ๋ฐœ์ „์˜ ํ•œ๊ณ„ ์š”์†Œ

  • ์ƒˆ๋กœ์šด ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์„ ํ›ˆ๋ จ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์–‘์งˆ์˜ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ถ€์กฑ์ด ์ฃผ์š” ๋ฌธ์ œ๋กœ ์ง€์ ๋œ๋‹ค.
  • ๋ชจ๋ธ ์ œ์ž‘์ž๋“ค์€ ์ด๋ฏธ ์ธํ„ฐ๋„ท๊ณผ ์ถœํŒ๋œ ์„œ์ ์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ์˜ ๊ฐ€์žฅ ์‰ฌ์šด ๋ถ€๋ถ„์„ ๋‹ค ์ฑ„์ทจํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

 

๋”ฅ์Šคํ”ผ๋“œ(DeepSpeed)๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๋ฐœํ‘œํ•œ ๋”ฅ๋Ÿฌ๋‹์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. 

์˜คํ”ผ์…œ ๊ฐœ๋ฐœ ๊นƒํ—ˆ๋ธŒ์—์„œ๋Š” ํ•œ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์ฑ—์ง€ํ”ผํ‹ฐ์™€ ์œ ์‚ฌํ•œ ๋ชจ๋ธ ๊ต์œก์„ ์ง€์›ํ•ด ๋ชจ๋“  ๊ทœ๋ชจ์—์„œ ํฐ ๋น„์šฉ ์ ˆ๊ฐ์œผ๋กœ SOTA RLHF ์‹œ์Šคํ…œ๋ณด๋‹ค 15๋ฐฐ ๋น ๋ฅธ ์†๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๋งํ•œ๋‹ค. 

gpu ๋ฉ”๋ชจ๋ฆฌ์™€ ์—ฐ์‚ฐ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํฐ ์–ธ์–ด๋ชจ๋ธ ํ›ˆ๋ จ๊ณผ ๋ฐฐํฌ์— ์šฉ์ดํ•˜๋‹ค! 

DeepSpeed๋Š” ๋ชจ๋ธ ๋ณ‘๋ ฌํ™”, ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ํ›ˆ๋ จ, ZeRO(Zero Redundancy Optimizer) ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ  ํ›ˆ๋ จ ์†๋„๋ฅผ ๋†’์ธ๋‹ค๊ณ  ํ•œ๋‹ค. 

์†๋„๋ฅผ ๋†’์ด๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜ํ•˜๋‚˜์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

 

  • ZeRO ์ตœ์ ํ™”:
    • ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ, ์˜ตํ‹ฐ๋งˆ์ด์ € ์ƒํƒœ, ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ GPU ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํฐ ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ZeRO๋Š” Stage 1, Stage 2, Stage 3๋กœ ๋‚˜๋‰˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„๋Š” ์ ์ฐจ์ ์œผ๋กœ ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ๋ณ‘๋ ฌํ™”:
    • ๋ชจ๋ธ์„ ์—ฌ๋Ÿฌ GPU์— ๋ถ„์‚ฐํ•˜์—ฌ ํ›ˆ๋ จํ•˜๋ฉฐ, ํŒŒ์ดํ”„๋ผ์ธ ๋ณ‘๋ ฌํ™” ๋ฐ ํ…์„œ ๋ณ‘๋ ฌํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ ํ›ˆ๋ จ ํšจ์œจ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  • ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ํ›ˆ๋ จ (Mixed Precision Training):
    • fp16 ๋˜๋Š” bf16๊ณผ ๊ฐ™์€ ๋‚ฎ์€ ์ •๋ฐ€๋„์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›ˆ๋ จ ์†๋„๋ฅผ ๋†’์ด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ž…๋‹ˆ๋‹ค.
  • ์‹ฌํ™”๋œ ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌํ™”:
    • ํฐ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์—ฌ๋Ÿฌ GPU์— ๋ถ„์‚ฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ ํ›ˆ๋ จ์„ ์ง€์›ํ•˜๋ฉฐ, ํ›ˆ๋ จ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•ฉ๋‹ˆ๋‹ค.
  • Offload ๊ธฐ์ˆ :
    • CPU ๋˜๋Š” NVMe์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

MS DeepSpeed

 

 

- ๋”ฅ์Šคํฌ๋ฆฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐฉ๋ฒ•

pip install deepspeed

 

- ๊ธฐ๋ณธ ์‚ฌ์šฉ ์˜ˆ๊ธฐ 

PyTorch์™€ ํ•จ๊ป˜ DeepSpeed๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด deepspeed.initialize ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์„ค์ • ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ  ๋ชจ๋ธ์„ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. DeepSpeed ์„ค์ • ํŒŒ์ผ ์ƒ์„ฑ:

ds_config.json ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ZeRO, ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ๋“ฑ์˜ ์„ค์ •์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

{
  "train_batch_size": 8, 
  
  #ํ˜ผํ•ฉ ์ •๋ฐ€๋„
  "fp16": {
    "enabled": true
  },
  
  #zero 
  "zero_optimization": {
    "stage": 2
  }
}

 

2. ๋ชจ๋ธ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ:

PyTorch ๋ชจ๋ธ์„ DeepSpeed๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ • ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๊ณ  deepspeed.initialize ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

import deepspeed
import torch
import torch.nn as nn

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.layer = nn.Linear(768, 10)

    def forward(self, x):
        return self.layer(x)

# ์„ค์ • ํŒŒ์ผ ๊ฒฝ๋กœ
ds_config = "ds_config.json"

# ๋ชจ๋ธ ๋ฐ DeepSpeed ์ดˆ๊ธฐํ™”
model = MyModel()
model_engine, optimizer, _, _ = deepspeed.initialize(config=ds_config, model=model, model_parameters=model.parameters())

# ํ›ˆ๋ จ ๋ฃจํ”„
for batch in data_loader:
    outputs = model_engine(batch)
    loss = loss_fn(outputs, labels)
    model_engine.backward(loss)
    model_engine.step()

 

 


 

๐Ÿ“Œ ๋”ฅ์Šคํฌ๋ฆฐ์— ๋” ์•Œ์•„๋ณด๊ธฐ์— ์ข‹์€ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ๐Ÿ”

https://www.youtube.com/watch?v=g_O3O4ExaUY 

 

 

LLM ํŒŒ์ธํŠœ๋‹์„ ํ•˜๋ฉด์„œ ํฐ ๊ฑธ๋ฆผ๋Œ์ด ๋ฉ”๋ชจ๋ฆฌ ์ด์Šˆ์˜€๋Š”๋ฐ (cuda memory out) ๋‹ค์Œ ํŒŒ์ธํŠœ๋‹์‹œ์— ๋”ฅ์Šคํฌ๋ฆฐ์„ ์ ์šฉํ•ด์„œ ํ›ˆ๋ จ์‹œ์ผœ๋ด์•ผ๊ฒ ๋‹ค. 

์ด๋ฒˆ ๊ธ€์—์„œ ์„ค๋ช…ํ•  ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

1. ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ ๊ฐœ๋… 

2. ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ ์„ ์–ธ

3. RFR ๋ชจ๋ธ ์‚ฌ์šฉ ์ฝ”๋“œ - x,y๋ณ€์ˆ˜ ์„ค์ • ์ฝ”๋“œ 

4. ๋ณด๋„ˆ์Šค) ํ‰๊ฐ€ ์ฒ™๋„ mse ๋ž€? - ๋จธ์‹ ๋Ÿฌ๋‹ ํšŒ๊ท€๋ชจ๋ธ ์„ฑ๋Šฅ ํ‰๊ฐ€ ์ง€ํ‘œ 

 

์ฒซ๋ฒˆ์žฌ๋กœ ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ๋ž€ map ๋จธ์‹  ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ •ํ™•์„ฑ, ๋‹จ์ˆœ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ๋ถ„๋ฅ˜ ๋ฐ ํšŒ๊ท€ ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜์‚ฌ๊ฒฐ์ •๋‚˜๋ฌด(Decision Tree)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ด ๊ฒฐ์ • ํŠธ๋ฆฌ๋“ค์˜ ํ‰๊ท ์œผ๋กœ ์˜ˆ์ธก์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  ์ด๋Ÿฌํ•œ ๊ธฐ๋ฒ•์„ ์•™์ƒ๋ธ”(Ensemble) ๊ธฐ๋ฒ•์ด๋ผ ํ•œ๋‹ค. (์ฃผ์–ด์ง„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋žœ๋ค ๋ฐ์ดํ„ฐ set์„ ์ถ”์ถœํ•ด ๊ฐ ๋ฐ์ดํ„ฐset์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์„œ ๋งŽ์€ ์–‘์˜ ํ‘œ๋ณธ์ง‘๋‹ต์ด ์ƒ๊ธฐ๋‹ˆ ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.)

 -์ถœ์ฒ˜ : DACON ํŒŒ์ด์ฌ ํŠœํ† ๋ฆฌ์–ผ 

 

๋‘๋ฒˆ์งธ๋กœ ๋ชจ๋ธ ์„ ์–ธ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

from sklearn.ensemble import RandomForestRegressor

model = RandomForestRegressor()

๋จผ์ € sklearn.ensemble๋ถ€ํ„ฐ ํ•ด๋‹น RFR๋ชจ๋ธ์„ importํ•ด์•ผ ํ•œ๋‹ค. 

๊ทธ ํ›„, model๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•œ๋‹ค. 

 

ps. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ์— ๋‚˜์™€ ์žˆ๋‹ค. 

https://github.com/pyohamen/Im-Being-Data-Scientist/wiki/What-is-RandomForest%3F 

 

What is RandomForest?

Contribute to pyohamen/Im-Being-Data-Scientist development by creating an account on GitHub.

github.com

 

์„ธ๋ฒˆ์งธ๋กœ ์œ„์—์„œ model ๋ณ€์ˆ˜ ์„ ์–ธ์„ ํ–ˆ๋‹ค๋ฉด, ์ด ๋ชจ๋ธ์€ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•ด ๋จน์„ ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ•ด๋ณด์ž. 

๋จผ์ € ๋ชจ๋ธ์— ๋“ค์–ด๊ฐˆ x๋ณ€์ˆ˜์™€ y๋ณ€์ˆ˜๋ฅผ ์ƒ๊ฐํ•œ๋‹ค. 

x๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ์˜ˆ์ธก์‹œ ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜์ด๊ณ , y ๋ณ€์ˆ˜๋Š” ์˜ˆ์ธก ๊ฒฐ๊ณผ ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค. 

๋ณดํ†ต ์˜ˆ์ธก ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ฌ y๋ณ€์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” column์„ x๋ณ€์ˆ˜ ๋ฒ”์œ„์—์„œ ์ œ๊ฑฐํ•œ๋‹ค. 

์ฆ‰, ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

x_df = df.drop(['df์—์„œ ์ œ์™ธํ•  column name'], axis = 1) 

y_df = df['df์—์„œ ์ธ๋ฑ์‹ฑ ํ•  column name'

๋นจ๊ฐ„ ํ‘œ์‹œ๋กœ ๋˜์–ด์žˆ๋Š” ๋ถ€๋ถ„์€ ๋™์ผํ•œ column์„ ์ง€์นญํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์‚ฌ์‹ค ๋”ฐ์ง€๊ณ  ๋ณด๋ฉด df(๋ฐ์ดํ„ฐ ๊ฐ์ฒด) ์ž์ฒด์—์„œ ์ œ์™ธํ•˜๊ณ  ์ธ๋ฑ์‹ฑํ•  ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ x_df์™€ y_df์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— df๋Š” df๋Œ€๋กœ ์—ฌ์ „ํžˆ ๋ณ€ํ•จ์—†์ด ์กด์žฌํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด df์—์„œ ๋‚ด๊ฐ€ ๋ชจ๋ธ๋ง์—์„œ ์ œ์™ธํ•  column, df์—์„œ ๋‚ด๊ฐ€ ์ธ๋ฑ์‹ฑํ•  column์ด๋ผ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์˜€๋‹ค. 

x_df์™€ y_df๋ผ๊ณ  ์ด๋ฆ„ ์ง€์€ ์ด์œ ๋Š” ๋ณดํ†ต ๋ชจ๋ธ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ ๋ณ€์ˆ˜x,y๋’ค์— ๋ถ™์—ฌ์„œ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ด๋ฆ„ ์ง“๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์ด๋ ‡๊ฒŒ ๋ชจ๋ธ๋ง ๊ณผ์ •์—์„œ x์™€ y์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์„ค์ •ํ–ˆ๋‹ค๋ฉด ๋ชจ๋ธ๋ง ํ‰๊ฐ€ ์ง€ํ‘œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. 

 

๋ณด๋„ˆ์Šค, ๋ชจ๋ธ๋ง ํ‰๊ฐ€ ์ง€ํ‘œ 

๋‚ด๊ฐ€ ์ฐธ๊ณ ํ•˜๊ณ  ์žˆ๋Š” DACON ํŒŒ์ด์ฌ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ํ‰๊ฐ€์ง€ํ‘œ๋กœ RMSE๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. 

RMSE๋Š” MSE ํ‰๊ฐ€์ง€ํ‘œ์— ๋ฃจํŠธ๋ฅผ ์”Œ์šด ๊ฒƒ์œผ๋กœ RFR ๋ชจ๋ธ์„ ์„ ์–ธํ•  ๋•Œ criterion = 'mse'์˜ต์…˜์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

model = RandomForestRegressor(criterion = 'mse')

์ถœ์ฒ˜ : https://dacon.io/competitions/open/235698/talkboard/403636?page=1&dtype=recent

 

์ง€๊ธˆ๊นŒ์ง€ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ์ฝ”๋“œ๋กœ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

0. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
2. ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜ ์„ ํ˜• ๋น„๋ก€ ๋ณด๊ฐ„๋ฒ• ์‚ฌ์šฉ -ํŽธ์˜์ƒ ๋ฐ์ดํ„ฐ train์— ๋Œ€ํ•ด์„œ๋งŒ ์ง„ํ–‰
3. ๋ชจ๋ธ๋ง ์ž‘์—… x, y๋ณ€์ˆ˜ ์„ค์ •

 

ps. ๋จธ์‹ ๋Ÿฌ๋‹ ํ‰๊ฐ€์ง€ํ‘œ์— ๋Œ€ํ•œ ๋ณด๋„ˆ์Šค ๋‚ด์šฉ์€ ๊ธธ์–ด์ ธ์„œ ๋‹ค์Œ ๊ธ€ ํ™•์ธ! 

ํŒŒ์ด์ฌ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜(missing data)๋ฅผ ๋งŒ๋‚ฌ์„๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค.

์ฒซ๋ฒˆ์งธ๋Š” ๊ฒฐ์ธก์น˜์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ฉ”๊พธ๋Š” ๋ฐฉ๋ฒ•

๋‘๋ฒˆ์žฌ๋Š” ๋ณด๊ฐ„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋จผ์ € ๊ฒฐ์ธก์น˜์˜ ๊ฐœ๋…์„ ๋‹ค์‹œ ์งš์–ด๋ณด์ž๋ฉด missing data ์ฆ‰, ์žƒ์–ด๋ฒ„๋ฆฐ ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด ํ‘œ์—์„œ,

ํ–‰์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋„ฃ๋Š” ์—ด์ด ๋น„์–ด์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•™์ƒ๋“ค์˜ ํ•™๋ฒˆ์ด๋ผ๋Š” ํ–‰์—์„œ ํŠน์ • ํ•™์ƒ์˜ ํ•™๋ฒˆ ์นธ์ด ๋น„์–ด์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์ด๋ฆ„ ํ•™๋ฒˆ
ํ™๊ธธ๋™ 21900123
์‹ฌ์ฒญ์ด (missing data)
๋กœ๋นˆํ›— 21500321

์œ„ ํ‘œ์—์„œ๋Š” ์‹ฌ์ฒญ์ด์˜ ํ•™๋ฒˆ์—์„œ ๋ฐ์ดํ„ฐ missing์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋Ÿฐ ๋นˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๊ฐ€๋ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ด๋Ÿฐ ๋นˆ ๋ฐ์ดํ„ฐ๋ฅผ ์œตํ†ต์„ฑ ์žˆ๊ฒŒ ๋ฉ”๊ฟ”์ค˜์•ผํ•˜๋Š”๋ฐ, ์˜ค๋Š˜ ์†Œ๊ฐœํ•  ๋ฐฉ๋ฒ• ์ค‘ ์ฒซ๋ฒˆ์งธ๋กœ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ฉ”๊พธ๊ธฐ๋ฅผ ์‚ดํŽด๋ณด์ž.

ํ‰๊ท ๊ฐ’์„ ์ฐพ๋Š” ํ•จ์ˆ˜ mean()๊ณผ ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜๊ฐ€ ์ผ์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” fillna(

์–ด์ฉŒ๊ณ 

, inplace=True)๋งŒ ์•Œ๋ฉด ๋œ๋‹ค.

ํ’€์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

df.fillna({'Column name' : int(df[Column name'].mean()}, inplace=True)

 

์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์ž๋ฉด df๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๊ฐ์ฒด(๋ฐ์ดํ„ฐ ๊ฐ์ฒด)

fillnaํ•จ์ˆ˜๋Š” fill null arg๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค, null์„ ๋‚ด๊ฐ€ ์ง€์ •ํ•œ arg๋กœ ์ฑ„์›Œ๋ผ!

Column name์€ missing data๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ–‰์˜ ์ด๋ฆ„ 

int(df[Column name'].mean()๋ถ€๋ถ„์€ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๊ฐ€ ์ผ๋‹จ ๋‹น์—ฐํžˆ ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ (๋ฐ์ดํ„ฐ ์•ˆ์— ๋‹ค์–‘ํ•œ ํ–‰์ด ์žˆ์„ํ…Œ๋‹ˆ)

๊ทธ ๋ฐฐ์—ด์ค‘ ๋‚ด๊ฐ€ ์ฑ„์šฐ๊ณ ์ž ํ•˜๋Š” ํ–‰์˜ ์ด๋ฆ„์„ ์ฐพ์•„์„œ ๊ทธ ํ–‰์˜ ํ‰๊ท (-meanํ•จ์ˆ˜ ์‚ฌ์šฉ)์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๊ทธ ๊ฐ’์„ ์ •์ˆ˜(-intํ•จ์ˆ˜ ์‚ฌ์šฉ)๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์ค€๋‹ค๋Š” ๋œป 

inplace=True๋Š” ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์šฉ๋„ 

 

์•„์ด๊ณ  ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‰ฝ๋‹ค ์‰ฌ์›Œ!! 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‰๊ท ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์ข€๋” ์œตํ†ต์„ฑ ์žˆ๊ฒŒ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. 

์ผ๋‹จ ๋ณด๊ฐ„๋ฒ•์˜ ์˜๋ฏธ๋ถ€ํ„ฐ ์•Œ๊ณ ๊ฐ€์ž. ๋„ค์ด๋ฒ„ ์ˆ˜ํ•™๋ฐฑ๊ณผ์—์„œ ์„ค๋ช…ํ•˜๊ธฐ๋ฅผ,,

๋ณด๊ฐ„๋ฒ•์ด๋ž€ ์•Œ๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค.

 

์ฆ‰ ์šฐ๋ฆฌ๊ฐ€ ์‹œ๋„ํ•œ ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• ํ‰๊ท ๊ฐ’์œผ๋กœ ์ฑ„์šฐ๊ธฐ๋„ ๋‹น์—ฐํžˆ ๋ณด๊ฐ„๋ฒ• ์ค‘ ํ•˜๋‚˜๋‹ค. 

 

๊ทธ๋Ÿฐ๋ฐ, ์™œ ๋‘๋ฒˆ์งธ ๋ณด๊ฐ„๋ฒ•์„ ๋”ฐ๋กœ ์„ค๋ช…ํ•˜๋А๋ƒ, ๊ทธ ์ด์œ ๋Š” ๋นˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ๋ฐฉ์‹์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„์ง€๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ฒฐ์ •์— ๋‹ฌ๋ ธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฑ„์šฐ๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ์ธ์ง€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ์ธ์ง€ ์˜จ๋„ ๋ฐ์ดํ„ฐ์ธ์ง€ ์†๋„ ๋ฐ์ดํ„ฐ์ธ์ง€ ์„ฑ์  ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ด ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์ฑ„์šฐ๋Š” ๋ฐฉ์‹์ด ๋‹ค ๋‹ค๋ฅด๋‹ค! ๋ฌด์กฐ๊ฑด ํ‰๊ท ๊ฐ’์œผ๋กœ ์ฑ„์šฐ๋Š”๊ฒŒ ์ •๋‹ต์ด ์•„๋‹ˆ๋ผ๋Š” ๋ง. 

 

์ด์ œ ๋ณด๊ฐ„๋ฒ•์˜ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

๊ฒฐ์ธก์น˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ์ƒ ์ •๋ณด๋ผ๊ณ  ํ•˜์ž, ์ด๋•Œ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋Š” ์‹œ๊ฐ„ ์ˆœ์„œ๋‹ค. 

ex.

๋‚ ์งœ ๊ธฐ์ƒ ์ •๋ณด
2023.02.06 11:00 0๋„
2023.02.06 12:00 (missing data)
2023.02.06 13:00 4๋„

๋”ฐ๋ผ์„œ, ๊ฒฐ์ธก์น˜์— ๋Œ€ํ•ด์„œ๋Š” ์ง์ „ ์‹œ๊ฐ„๊ณผ ์งํ›„์‹œ๊ฐ„์˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ๋ณด๊ฐ„ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ๊ฒƒ์ด๋‹ค. 

์˜ค๋Š˜ ์‚ฌ์šฉํ•  ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์กด์žฌํ•˜๋Š” ์•ž์˜ ๊ฐ’๊ณผ ์กด์žฌํ•˜๋Š” ๋’ค์˜ ๊ฐ’ ์‚ฌ์ด์˜ ๋นˆ ๊ฐ’์„ ์กฐ๊ธˆ์”ฉ ๋ณ€ํ™”์‹œ์ผœ๊ฐ€๋ฉฐ ์ฑ„์›Œ๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋‹ค๋ฅธ ์ฝ”๋“œ ํ•„์š”์—†์ด ๋ณธ ์ฝ”๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , ๋ณด๊ฐ„๋ฒ• ์ดํ›„ null ์œ ๋ฌด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ ์•„๋ž˜ print๋ฌธ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

df.interpolate(inplace=True)

print(df.isnull().sum())

 

 

๋‹ค์–‘ํ•œ ๋ณด๊ฐ„๋ฒ•์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ์— ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์–ด์„œ ์ถ”์ฒœํ•œ๋‹ค! 

https://rfriend.tistory.com/264 

ํŒŒ์ด์ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ๋•Œ ์ฃผ๋กœ colab์„ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

์›น์ด๋ผ ์ ‘๊ทผ์„ฑ๋„ ํŽธํ•˜๊ณ  ๋„๊ณ  ํ‚ค๊ธฐ ํŽธํ•˜๊ณ  ๊ฐ€๋ฒผ์šด ๋А๋‚Œ.

 

1. read_csv 

์—‘์…€์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ๋•Œ read_csv๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜จ๋‹ค

๋จผ์ € import๋กœ ํŒ๋‹ค๋ž‘ ์ธ์‚ฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ฐ›์„ ๊ฐ์ฒด์— read_csv('ํŒŒ์ผ ์ด๋ฆ„.ํ™•์žฅ์ž')๋ฅผ ๋Œ€์ž…ํ•ด์ฃผ๋ฉด๋œ๋‹ค.

 

2. ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜ ํ™•์ธ 

๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์œผ๋ฉด ๋ฐ์ดํ„ฐ ๊ฒฐ์ธก์น˜๋ฅผ ํ™•์ธํ•ด์•ผํ•œ๋‹ค๋Š” ๋ง์ด ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋นˆ๊ฒŒ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์•Œ์•„๋ณด๋Š” ๊ฒƒ์ด๋‹ค. 

๊ณ„๋ž€ ํ•œํŒ ์‚ฌ๊ธฐ์ „ 30๊ฐœ๊ฐ€ ๋‹ค ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋А๋‚Œ์ด๋ž„๊นŒ? 

์˜์–ด๋กœ Missing Value๋ผ๊ณ  ํ•œ๋‹ค. ์ค„์—ฌ์„œ NA๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ null์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. 

ํŒ๋‹ค๋Š” NaN์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฉ”์„œ๋“œ๋„ ์‰ฝ๊ฒŒ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋‹ค. isnull()์ด๋‹ค.

๋ฌธ์ž ๊ทธ๋Œ€๋กœ is null?์ด๋ƒ๊ณ  ๋ฌป๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌํ„ด๊ฐ’์ด true๋ฉด NaN, false๋Š” ๊ทธ ๋ฐ˜๋Œ€๋‹ค. 

 

3. head() , tail()

๋ฐ์ดํ„ฐ์—์„œ ์‹œ์ž‘ 5๊ฐœ(0~4), ๋์—์„œ 5๊ฐœ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ๋Š” tail์„ ์ด์šฉํ•˜๋ฉด ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ์ด ํฌํ•จ๋˜๋‹ˆ๊นŒ ๋ช‡๊ฐœ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ๋” ์‰ฌ์šด ๊ฒƒ ๊ฐ™๋‹ค. 

 

4. shape

๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ์ˆ˜ ์™ธ์—๋„ ํ–‰๊ณผ ์—ด์˜ ์ˆ˜๋ฅผ ๋ฐ”๋กœ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด .shape๋ฅผ ํ†ตํ•ด ์•Œ์ˆ˜์žˆ๋‹ค.

 

5. info()

๋ฐ์ดํ„ฐ์˜ Column๊ณผ null ์œ ๋ฌด, ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ•œ๋ฒˆ์— ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋‹ค. 

 

 

 

 

 

+ Recent posts