κ³Όκ±° λ°μ΄ν° κΈ°λ°μΌλ‘, μ λ ₯ μ£Όμ΄μ‘μ λ μΆλ ₯(μμΈ‘κ°)μ΄ λμμΌ νλ€.
μμΈ‘νκ³ μ νλ λ³μ = target variable(νκ² λ³μ)
νκ² λ³μκ° μ€μμ΄λ©΄ = regression problem,
νκ² λ³μκ° μΉ΄ν κ³ λ¦¬ λ³μμ΄λ©΄ = classification (λνμ μΈ λ°©λ²λ‘ : λ‘μ§μ€ν± νκ·)
μ΄ λμ supervised learning(μ§λ νμ΅)μ΄λ€.
unsupervised learning(λΉμ§λ νμ΅)μλ clustring(k-means) λ±μ΄ μλ€.
μ ννκ· Linear Regression
- μ’ μ λ³μ π¦μ νκ° μ΄μμ λ 립 λ³μ πμμ μ ν κ΄κ³λ₯Ό λͺ¨λΈλ§(=1μ°¨λ‘ μ΄λ£¨μ΄μ§ μ§μ μ ꡬνλ€)νλ λ°©λ²λ‘
- μ΅μ μ μ§μ μ μ°Ύμ λ 립 λ³μμ μ’ μ λ³μ μ¬μ΄μ κ΄κ³λ₯Ό λμΆνλ κ³Όμ
λ 립 λ³μ= μ λ ₯ κ°μ΄λ μμΈ(input)
μ’ μ λ³μ = λ 립 λ³μμ μν΄ μν₯μ λ°λ λ³μ(output)
<simple linear regression>(λ 립λ³μxκ° 1κ°μΌ λ)
λ°μ΄ν°λ₯Ό κ°μ₯ μ μ€λͺ νλ μ§μ μ μμΈ‘ν κ°μ΄ μ€μ λ°μ΄ν°μ κ°κ³Ό κ°μ₯ λΉμ·ν΄μΌ ν©λλ€.
μ°λ¦¬μ λͺ¨λΈμ΄ μμΈ‘ν κ°μ μμμ μ μ μλ― π(π₯π)μ λλ€. κ·Έλ¦¬κ³ μ€μ λ°μ΄ν°λ π¦ μ λλ€.
μ€μ λ°μ΄ν°(μ κ·Έλ¦Όμμ λΉ¨κ° μ ) κ³Ό μ§μ μ¬μ΄μ μ°¨μ΄λ₯Ό μ€μ΄λ κ²μ΄ μ°λ¦¬μ λͺ©μ μ λλ€.
κ·Έκ²μ λ°νμΌλ‘ cost functionμ λ€μκ³Ό κ°μ΄ μ μν΄λ³΄κ² μ΅λλ€.
(n: μν μ, i: iλ²μ§Έ λ°μ΄ν°)
μ°λ¦¬λ cost functionμ μ΅μλ‘ νλ π€μ πλ₯Ό μ°ΎμμΌ ν©λλ€.
μ΄μ°¨ν¨μμ΄λ―λ‘ μ΄μ°¨ν¨μμ μ΅μκ°μ ꡬνλ λ°©λ²μ
1. λ―ΈλΆν κ°μ΄ 0μ΄ λλ μ§μ μ°ΎκΈ°
[−3/2β]
2. gradient descent
gradient descent
νλ²μ μ λ΅μ μ κ·Όνλ κ²μ΄ μλ λ°λ³΅μ μΌλ‘ μ λ΅μ κ°κΉμμ§λ λ°©λ²
fpnum = sympy.lambdify(w, fprime)
2. μ²μ π€ κ°μ μ€μ ν λ€, λ°λ³΅μ μΌλ‘ μ΅μκ°μ ν₯ν΄μ μ κ·Ό
w = 10.0 # starting guess for the min
for i in range(1000):
w = w - fpnum(w)*0.01 # with 0.01 the step size
κ²°κ³Όλ λ―ΈλΆν κ°κ³Ό κ°λ€
μ€μ λ‘ μ μ©ν΄λ³΄κΈ° :
linear regression λ°©λ²μ μ¬μ©ν΄μ μκ° νλ¦μ λ°λ₯Έ μ§κ΅¬μ μ¨λ λ³ν λΆμ
Global temperature anomalyλΌλ μ§νλ₯Ό ν΅ν΄μ λΆμμ ν΄λ³Ό κ²μ λλ€.
μ¬κΈ°μ temperature anomalyλ μ΄λ ν κΈ°μ€ μ¨λ κ°μ μ ν΄λκ³ κ·Έκ²κ³Όμ μ°¨μ΄λ₯Ό λνλΈ κ²μ λλ€. μλ₯Ό λ€μ΄μ temperature anomalyκ° μμμ λμ κ°μ κ°μ§λ€λ©΄ κ·Έκ²μ νμλ³΄λ€ λ°λ―ν κΈ°μ¨μ κ°μ‘λ€λ λ§μ΄κ³ , μμμ μμ κ°μ κ°μ§λ€λ©΄ κ·Έκ²μ νμλ³΄λ€ μ°¨κ°μ΄ κΈ°μ¨μ κ°μ‘λ€λ λ§μ λλ€.
μΈκ³ μ¬λ¬ μ§μμ μ¨λκ° κ°κ° λ€ λ€λ₯΄κΈ° λλ¬Έμ global temperature anomalyλ₯Ό μ¬μ©ν΄μ λΆμμ νλλ‘ νκ² μ΅λλ€. μμΈν λ΄μ©μ μλ λ§ν¬μμ νμΈνμ€ μ μμ΅λλ€.
https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php
Step 1 : Read a data file
NOAA(National Oceanic and Atmospheric Administration) ννμ΄μ§μμ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ² μ΅λλ€.
μλ λͺ λ Ήμ΄λ‘ λ°μ΄ν°λ₯Ό λ€μ΄λ°κ³ , numpy ν¨ν€μ§λ₯Ό μ΄μ©ν΄ λΆλ¬μ€κ² μ΅λλ€.
from urllib.request import urlretrieve
import numpy
URL = 'http://go.gwu.edu/engcomp1data5?accessType=DOWNLOAD'
urlretrieve(URL, 'land_global_temperature_anomaly-1880-2016.csv')
fname = '/content/land_global_temperature_anomaly-1880-2016.csv'
year, temp_anomaly = numpy.loadtxt(fname, delimiter=',', skiprows=5, unpack=True)
Step 2 : Plot the data
Matplotlib ν¨ν€μ§μ pyplotμ μ΄μ©ν΄μ 2D plotμ μ°μ΄λ³΄λλ‘ νκ² μ΅λλ€.
from matplotlib import pyplot
%matplotlib inline
pyplot.rc('font', family='serif', size='18')
#You can set the size of the figure by doing:
pyplot.figure(figsize=(10,5))
#Plotting
pyplot.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1)
pyplot.title('Land global temperature anomalies. \n')
pyplot.xlabel('Year')
pyplot.ylabel('Land temperature anomaly [°C]')
pyplot.grid();
Step 3 : Analytically
Linear regressionμ νκΈ° μν΄μ λ¨Όμ μ§μ μ μ μνκ² μ΅λλ€.
κ·Έ λ€μ μ΅μν ν΄μΌ ν cost functionμ λ€μκ³Ό κ°μ΅λλ€.
μ΄μ cost function μ ꡬνκ³ μ νλ λ³μλ‘ λ―ΈλΆν λ€ 0μ΄ λλλ‘ νλ κ°μ μ°ΎμΌλ©΄ λ©λλ€.
w = numpy.sum(temp_anomaly*(year - year.mean())) / numpy.sum(year*(year - year.mean()))
b = a_0 = temp_anomaly.mean() - w*year.mean()
print(w)
print(b)
#0.01037028394347266
#-20.148685384658464
μ΄μ κ·Έλνλ‘ κ·Έλ €μ νμΈν΄λ³΄λλ‘ νκ² μ΅λλ€
reg = b + w * year
pyplot.figure(figsize=(10, 5))
pyplot.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5)
pyplot.plot(year, reg, 'k--', linewidth=2, label='Linear regression')
pyplot.xlabel('Year')
pyplot.ylabel('Land temperature anomaly [°C]')
pyplot.legend(loc='best', fontsize=15)
pyplot.grid();
'λ¨Έμ λ¬λ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ€μ€ λ‘μ§μ€ν± νκ· (μννΈλ§₯μ€ νκ·) (0) | 2022.12.05 |
---|---|
λ‘μ§μ€ν± νκ· sklearn logistic regression iris python (0) | 2022.12.04 |
[λ¨Έμ λ¬λ4] Logistic Regression λ‘μ§μ€ν± νκ· pyhton (0) | 2022.11.30 |
[λ¨Έμ λ¬λ3] Multiple Linear Regression λ€μ€μ ννκ· python (0) | 2022.11.30 |
[λ¨Έμ λ¬λ2] Polynomial Regression python (0) | 2022.11.30 |