Data Science/Python

Linear Regression (μ„ ν˜• νšŒκ·€) - 1 | νŒ¨ν‚€μ§€ μ•Œμ•„λ³΄κΈ°

Chan Lee 2024. 6. 2. 14:44

이번 ν¬μŠ€νŠΈμ—μ„œλŠ” νŒŒμ΄μ¬μ„ μ‚¬μš©ν•΄μ„œ 기초적 μ„ ν˜• νšŒκ·€ λͺ¨λΈμ„ κ΅¬ν˜„ν•˜λŠ”λ° ν•„μš”ν•œ νŒ¨ν‚€μ§€λ“€μ„ μ•Œμ•„λ³΄κ² μŠ΅λ‹€.

μ„ ν˜• νšŒκ·€μ˜ 맀우 기초적 κ°œλ…μ— λŒ€ν•΄μ„œλŠ” λ‹€μŒ ν¬μŠ€νŠΈμ— μ •λ¦¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

Regression Analysis - Linear Regression | νšŒκ·€ 뢄석 - μ„ ν˜• νšŒκ·€

Linear Regression(μ„ ν˜• νšŒκ·€): 2개 μ΄μƒμ˜ λ³€μˆ˜λ“€ μ‚¬μ΄μ—μ„œμ˜ 인과 관계에 λŒ€ν•œ μ„ ν˜• 근사 (예츑)A linear approximation of a causal relationship between two or more variables. μ„ ν˜• νšŒκ·€μ˜ κ³Όμ •1. Sample dataλ₯Ό μˆ˜μ§‘ν•œλ‹€.2

code-studies.tistory.com

 

 

νŒ¨ν‚€μ§€ μ„€μΉ˜ 및 import

μš°μ„  μ„ ν˜• νšŒκ·€ λͺ¨λΈμ„ λ””μžμΈν•˜λŠ”λ° ν•„μš”ν•œ μ£Όμš” 파이썬 νŒ¨ν‚€μ§€λ“€λΆ€ν„° μ„€μΉ˜ν•˜κ³  μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

import numpy as np
import pandas as pd
import scipy
import statsmodels.api as sm
import matplotlib as plt
import seaborn as sns
import sklearn

 
μœ„ νŒ¨ν‚€μ§€λ“€ μ€‘μ—μ„œ, μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŒ¨ν‚€μ§€κ°€ μ‘΄μž¬ν•œλ‹€λ©΄ 
pip install [package_name], λ˜λŠ” pip3 install [package_name],
λ˜λŠ” anacondaλ₯Ό μ‚¬μš© 쀑이라면 conda install [package_name]
으둜 μ„€μΉ˜ν•΄ μ£Όμ‹œλ©΄ λ˜κ² μŠ΅λ‹ˆλ‹€.
 
 
μ—¬κΈ°μ„œ, λͺ‡κ°€μ§€ μ€‘μš”ν•œ νŒ¨ν‚€μ§€μ— λŒ€ν•΄μ„œ λŒ€λž΅μ μœΌλ‘œλ§Œ μ•Œκ³  κ°€κ² μŠ΅λ‹ˆλ‹€.
 
1. Numpy
NumpyλŠ” 고차원 배열을 μ‰½κ²Œ λ‹€λ£¨κ²Œ 도와주어, λŒ€λŸ‰μ˜ 데이터λ₯Ό λ‹€λ£¨λŠ”λ° 도움을 μ£ΌλŠ” νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€.
2. Pandas
PandasλŠ” μš°λ¦¬κ°€ 데이터λ₯Ό μ •λ¦¬ν•˜κ³ , μ„€λͺ…ν•˜λŠ” descriptive label을 각 ν–‰κ³Ό 열에 λΆ€μ—¬ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.
Pandas μ—­μ‹œ λŒ€λŸ‰μ˜ 데이터λ₯Ό λ‹€λ£¨λŠ”λ° 큰 도움을 μ€λ‹ˆλ‹€.
3. matplotlib
μš°λ¦¬κ°€ λͺ¨λΈμ„ λ””μžμΈ ν–ˆλ‹€λ©΄, κ·Έ λͺ¨λΈμ„ μ‹œκ°μ μœΌλ‘œλ„ ν™•μΈν•˜κ³  μ‹Άκ² μ£ ?
matplotlib은 2차원 ν‰λ©΄μ—μ„œ Numpy 연산듀을 μ‹œκ°ν™”ν•΄μ£ΌλŠ” 것을 λ„μ™€μ£ΌλŠ” 라이브러리 μž…λ‹ˆλ‹€.
μ—¬λŸ¬κ°€μ§€ κ·Έλž˜ν”„λ“€μ„ numpy와 matplotlib을 ν†΅ν•΄μ„œ μ‹œκ°ν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 
μœ„ numpy, pandas, matplotlib λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ€ λͺ¨λ‘ scipy μƒνƒœκ³„μ˜ μΌλΆ€μž…λ‹ˆλ‹€.
λŒ€μΆ© μ„€λͺ…ν•˜μžλ©΄, ScipyλŠ” 곡학적 계산을 μœ„ν•œ λ‹€μ–‘ν•œ 도ꡬ듀이 μ‘΄μž¬ν•˜λŠ” 파이썬 μƒνƒœκ³„μž…λ‹ˆλ‹€.
μˆ˜ν•™, 곡학, κ³Όν•™, λ¨Έμ‹  λŸ¬λ‹, κ·Έμ™Έ λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ μ‚¬μš©λ  수 μžˆλŠ” 파이썬 μƒνƒœκ³„μ •λ„λΌκ³  μƒκ°ν•˜λ©΄ λ˜κ² μŠ΅λ‹ˆλ‹€.
 
4. Seaborn
Seaborn은 matplotlib에 κΈ°λ°˜μ„ λ‘” 파이썬 μ‹œκ°ν™” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€.
보닀 맀λ ₯적인 μ‹œκ°ν™”λ₯Ό μœ„ν•œ 높은 μˆ˜μ€€μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
μš°λ¦¬λŠ” matplotlib으둜 ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜κ² μ§€λ§Œ, seaborn의 λ””μžμΈμ„ ν™œμš©ν•  것 μž…λ‹ˆλ‹€.
 
5. StatsModels
StatsModelsλŠ” Numpy와 Scipyλ₯Ό 기반으둜 ν•˜λŠ” νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€.
ꡐ윑 λ©΄μ—μ„œ 맀우 쒋은 summaryλ₯Ό μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ—, μš°λ¦¬λŠ” 주둜 이 StatsModels둜 νšŒκ·€ λͺ¨λΈμ„ λ””μžμΈν•  것 μž…λ‹ˆλ‹€.
 
6. sklearn (scikit-learn)
sklearn은 κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” 파이썬 λ¨Έμ‹  λŸ¬λ‹ 라이브러리 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.
μš°λ¦¬λŠ” μš°μ„  StatsModels둜 νšŒκ·€ λͺ¨λΈμ„ λ§Œλ“€κ³  μ‚΄νŽ΄λ³Ό 것이고, λΉ„μŠ·ν•œ 일을 ν•˜λŠ” μ½”λ“œλ₯Ό sklearnμœΌλ‘œλ„ μ•Œμ•„λ³Ό 것 μž…λ‹ˆλ‹€.
μ§„μ§œ μ€‘μš”ν•œ 것은 sklearn이고, StatsModelsλŠ” 비ꡐ적 이해가 쉽기 λ•Œλ¬Έμ— κ΅μœ‘μ„ μœ„ν•΄μ„œ ν™œμš©ν•  것 μž…λ‹ˆλ‹€.
 
 
λ‹€μŒ ν¬μŠ€νŠΈμ—μ„œλŠ” μ°¨κ·Όμ°¨κ·Ό 직접 νšŒκ·€ λͺ¨λΈμ„ λ””μžμΈν•˜λŠ”κ±Έ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.