๐ณ 'ํ๋'๋ ํฌ๋ ์ด๊ฐ ๋์ ํ๊ณ ์๋ ํ์ด์คํฌ๋ฆฝํธ ๋์ ๊ธฐ์ ์ค์๋ง์ ๋๋ค.
์ง๋ ๊ฒ์๊ธ์์ ์ฐ์ฌ๋๋ ๊ธ์ ๋๋ค. : https://itadventure.tistory.com/557
ํ๋!(15) - ๋ผ์ํ๊ท์ 4์ฐจ๋ฐฉ์ ์๊น์ง
๐ฟ 'ํ๋'๋ ํ์ด์คํฌ๋ฆฝํธ ๋์ ๊ธฐ์ ์ค์๋ง์ ๋๋ค. ์ง๋ ๊ฒ์๊ธ์์ ์ฐ์ฌ๋๋ ๊ธ์ ๋๋ค. : https://itadventure.tistory.com/555 ํ๋!(14) - ๋ฆฟ์ง ๋ฆฌ๊ทธ๋ ์ ์ผ๋ก ์ ํ๋๊ฐ ๋์์ง๋ค๊ตฌ? โป 'ํ๋'๋ ํ์ด์คํฌ
itadventure.tistory.com
ํ์ด์คํฌ๋ฆฝํธ๋ ํ์ด์ฌ๋ณด๋ค ์๋๊ฐ ๋๋ฆฝ๋๋ค. ๋ก๋ฉ์๋๋ ๋งค์ฐ ๋๋๊ณ ์.
ํ์ง๋ง ์ ํ ์๋ฌด๊ฒ๋ ์ค์น๋์ง ์์ ์ปดํจํฐ์์ ์น๋ธ๋ผ์ฐ์ ๋ง ์์ผ๋ฉด ์๋์ด ๋์ง์.
์ฒ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์๋จธ์ ์ด ํ์ด์ฌ์ ํ๋ด๋ฅผ ๋ด๋ ์ค๋ก ์๊ฐ ํ์๋๋ฐ์.
๊ทธ๊ฒ ์๋๋๋ผ๊ตฌ์. ์์ ์ ๊ธฐ์ ๋ก ๋ถ๋ฅ๋ ์ ์๋ ์น์ด์
๋ธ๋ฆฌ๋ผ๋ ๊ธฐ์ ์ด ์ค์ ํ์ด์ฌ์ ์๋์ํค๋ ๊ฒ์
๋๋ค.
๊ทธ๊ฒ๋ ๋ด ์ปดํจํฐ์์ ๋ง์ด์ง์. ํ์ด์คํฌ๋ฆฝํธ๊ฐ ์๋ํ๋ ๊ฒ์ ์น์๋ฒ๊ฐ ์๋๋ผ ๋ด ์ปดํจํฐ์ด์ง์.
์น์๋ฒ๋ ๋ค๋ฅธ ๊ณณ์ ์์ง๋ง ํ์ด์คํฌ๋ฆฝํธ๋ก ๋จธ์ ๋ฌ๋์ ์๋์์ผ ๋ณด๋ฉด ๋ด ์ปดํจํฐ์ CPU ์ฌ์ฉ์จ์ด ์์ฒญ ์ฌ๋ผ๊ฐ๋๋ค.
ํ์ด์ฌ์ ์ฃฝ์ง ์๋๋ค. ๋ค๋ง ๋ฉ๋ชจ๋ฆฌ์ ๋ ์์ ๋ฟ์ด๋ค.
๊ฑฐ์ 1.5G ๊ฐ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๊ณ ์๋๋ฐ์. ์นํ์ด์ง๊ฐ ๋ชจ๋ ๋ฌ ์ํ์์๋ ๊ณ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ณ ์์ต๋๋ค. ์ ๊ทธ๋ด๊น์? ๊ทธ๊ฒ์ ๋ฐ๋ก ์น๋ธ๋ผ์ฐ์ ๋ด ํ์ด์ฌ์ด ํ์ฌ ์๋ํ๊ณ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ด์ง์.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ๋ฒ ๋ ์๋ ํ์ด์ฌ ์์ง์ ๋ช
๋ น์ ๋ฐ์ผ๋ฉด ๋ฐ๋ก ์๋ํ๋๋ก ๋๊ธฐํ๊ณ ์์ผ๋ฉฐ
์นํ์ด์ง๋ฅผ ์๋ก ๊ณ ์นจํ์ง ์๋๋ผ๋ ํ์ด์ฌ ์์ง์ผ๋ก ๋ช
๋ น๋ง ์ ๋ฌํ๋ฉด ๋ญ๊ฐ ์๋ก์ด ์๋์ ์๋ํฉ๋๋ค.
๋๋์ง ์๋์? :)
์ค๋์ ๊ทธ๊ฑธ ์ด์ฉํด์ ๋ฆฟ์ง๋ฆฌ๊ทธ๋ ์ ๊ณผ ๋ผ์๋ฆฌ๊ทธ๋ ์ , ๊ทธ๋ฆฌ๊ณ ์ํ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ ์์ ์์ ๋กญ๊ฒ ์ ํ์์๋ฅผ ์ ํํ์ฌ ๊ทธ๋ํ๊ฐ ์ด๋์ ๋ ์ ์คํ๋์ง ์ดํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ฐ์ ํต์พ(?)ํ๊ฒ ์์ค์ ๊ฒฐ๊ณผ๋ฌผ์ ์ด๋ฒ ๊ฒ์๊ธ์ ๊ณต๊ฐํ๊ณ ์ค๋ช ์ ๋ค์ ๊ฒ์๊ธ์์ ์งํํ๋ ค๊ณ ํฉ๋๋ค :)
์์ค๋ฅผ ๊ณต๊ฐํฉ๋๋ค!
์ด๋ฒ ํ์ด์คํฌ๋ฆฝํธ ์์ค๋ ์๋์ ๊ฐ์ผ๋ฉฐ ํฌ๋ ์ด์ ํํ์ด์ง์์๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
http://dreamplan7.cafe24.com/pyscript/py11-1.html
<html>
<head>
<title>๋คํญํ๊ท + ๋ผ์ ๋ฆฌ๊ทธ๋ ์
</title>
<link rel="stylesheet"
href="https://pyscript.net/alpha/pyscript.css" />
<script defer
src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- pandas
- matplotlib
- seaborn
- scikit-learn
- paths:
- ./NANUMMYEONGJO.TTF
- ./NANUMMYEONGJOBOLD.TTF
- ./common.py
</py-env>
</head>
<body>
<link rel="stylesheet" href="pytable.css"/>
์๊ณ ๋ฆฌ์ฆ ์ ํ :
<select id="algorithm">
<option value="">์๊ณ ๋ฆฌ์ฆ์ ์ ํํ์ธ์</option>
<option value="๋ฆฟ์ง">๋ฆฟ์ง ํ๊ท (Ridge Regression)</option>
<option value="๋ผ์">๋ผ์ ํ๊ท (Lasso Regression)</option>
</select><br/>
์ํ๊ฐ ์ ํ :
<select id="alpha_value">
<option value="0.001">0.001</option>
<option value="0.01">0.01</option>
<option value="0.1">0.1</option>
<option value="1">1</option>
<option value="10">10</option>
<option value="100">100</option>
</select><br/>
ํ๋ จ์ ์ : <span id="train_score" style=''></span><br/>
ํ
์คํธ์ ์ : <span id="test_score" style=''></span><br/>
<div id="graph"></div>
<py-script>
import pandas as pd
from pyodide.http import open_url
from common import *
import numpy as np
from datetime import datetime
# ๊ฒฝ๊ณ ๋ฌธ๊ตฌ ์ ๊ฑฐ
import warnings
warnings.filterwarnings( 'ignore' )
# ํ๋ค์ค์์ csv ๋ฅผ ๋ฐ์ดํฐ ํ๋ ์์ผ๋ก ์ฝ์ด์ด
๋งค์ถ๋ฐ์ดํฐ = pd.read_csv(open_url(
"http://dreamplan7.cafe24.com/pyscript/csv/avocado.csv"
))
# 3๊ฐ ํ๋๋ง ์ถ๋ ค์ ๋ฐ์ดํฐ ํ๋ ์์ ๋ค์ ๋ง๋ฌ
๋งค์ถ๋ฐ์ดํฐ = ๋งค์ถ๋ฐ์ดํฐ[[
'Date',
'Total Volume',
'AveragePrice'
]]
# ์๋ฌธ ์ ๋ชฉ์ ํ๊ธ๋ก ๋ณ๊ฒฝ
๋งค์ถ๋ฐ์ดํฐ.columns = [
'๋ ์ง',
'๋งค์ถ๋',
'ํ๊ท ๊ฐ๊ฒฉ'
]
์ฃผ๊ฐ๋งค์ถ_๋งค์ถ๋=๋งค์ถ๋ฐ์ดํฐ.fillna(0) \
.groupby('๋ ์ง', as_index=False)[['๋งค์ถ๋']].sum() \
.sort_values(by='๋ ์ง', ascending=True)
์ฃผ๊ฐ๋งค์ถ_ํ๊ท ๊ฐ=๋งค์ถ๋ฐ์ดํฐ.fillna(0) \
.groupby('๋ ์ง', as_index=False)[['ํ๊ท ๊ฐ๊ฒฉ']].mean() \
.sort_values(by='๋ ์ง', ascending=True)
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ=pd.merge(์ฃผ๊ฐ๋งค์ถ_๋งค์ถ๋, ์ฃผ๊ฐ๋งค์ถ_ํ๊ท ๊ฐ, on='๋ ์ง')
# ๋ ์ง(์๊ฐ๊ฐ) ์ถ๊ฐ
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(1, '๋ ์ง(์๊ฐ๊ฐ)',
'',
True)
for i in ์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง'].index:
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง(์๊ฐ๊ฐ)'].loc[i]=time.mktime(
datetime.strptime(
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง'].loc[i],
'%Y-%m-%d'
).timetuple()
)
# 10000์ผ๋ก ๋๋ ๋งค์ถ๋ ํ๋ ์ถ๊ฐ
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(3, '๋งค์ถ๋(๋ง)',
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋งค์ถ๋']/10000,
True)
# ํ๋ จํ์ต์ฉ์ผ๋ก ๋ ์ง๋ฅผ ์ฐ๋, ์, ์ผ๋ก ๋๋๋ค
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(4, '์ฐ๋', '', True)
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(5, '์', '', True)
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(6, '์ผ', '', True)
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ.insert(7, '์ฃผ', '', True)
for i in ์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง'].index:
์์=str(์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง'].loc[i]).split('-')
์ฐ๋=int(์์[0])
์=int(์์[1])
์ผ=int(์์[2])
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['์ฐ๋'].loc[i]=์ฐ๋
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['์'].loc[i]=์
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['์ผ'].loc[i]=์ผ
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['์ฃผ'].loc[i]=str(
datetime(์ฐ๋, ์, ์ผ).isocalendar()[1]
)
createElementDiv(
document,
Element,
'output2'
).write(์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ)
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐํ๋ จ_๋ํ์ด = ์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ[['๋ ์ง(์๊ฐ๊ฐ)', '์ฐ๋', '์', '์ผ', 'ํ๊ท ๊ฐ๊ฒฉ']].to_numpy()
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ๋ชฉํ_๋ํ์ด = ์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋งค์ถ๋(๋ง)'].to_numpy()
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ๋ ์ง_๋ํ์ด = ์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ['๋ ์ง'].to_numpy()
from sklearn.model_selection import train_test_split
ํ๋ จ์ฉ๋ฐ์ดํฐ, ํ
์คํธ๋ฐ์ดํฐ, ํ๋ จ์ฉ๋ชฉํ, ํ
์คํธ๋ชฉํ = \
train_test_split(
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐํ๋ จ_๋ํ์ด,
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ๋ชฉํ_๋ํ์ด,
random_state=100,
shuffle=False)
from sklearn.preprocessing import PolynomialFeatures
ํด๋ฆฌ = PolynomialFeatures(degree=4, include_bias=False) # ์ ํธ ์์ฑ์ ์ ๊ฑฐ
ํด๋ฆฌ.fit(ํ๋ จ์ฉ๋ฐ์ดํฐ) # ํน์ฑ์ ๋คํญ์ผ๋ก ์๋์ผ๋ก ๋ถ๋ฆผ
#print(ํด๋ฆฌ.get_feature_names_out())
ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต = ํด๋ฆฌ.transform(ํ๋ จ์ฉ๋ฐ์ดํฐ) # ํ์ต์ ์ถ๊ฐ๋ ํ๋ผ๋ฏธํฐ์ ๋ง๊ฒ ๋คํญ ๋ณํ
ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต = ํด๋ฆฌ.transform(ํ
์คํธ๋ฐ์ดํฐ) # ํ
์คํธ ์ธํธ๋ ๋คํญ ๋ณํ, fitํ๋ ํ๋ จ poly ๋ฅผ ์ฌ์ฉ.
#=====================================
from sklearn.preprocessing import StandardScaler
์ค์ผ์ผ๋ฌ = StandardScaler()
์ค์ผ์ผ๋ฌ.fit(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต)
ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต = ์ค์ผ์ผ๋ฌ.transform(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต)
ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต = ์ค์ผ์ผ๋ฌ.transform(ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต)
from sklearn.linear_model import Ridge
from sklearn.linear_model import Lasso
#=====================================
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import matplotlib as mat
# ๊ธฐ์ค ํฐํธ ๋ณ๊ฒฝ : legend ์ ํ๊ธ์ ์ ์ฉํ๋ ค๋ฉด ํ์
fm.fontManager.addfont('./NANUMMYEONGJO.TTF') # ํฐํธ๋ช
: NanumMyeongjo
mat.rc('font', family='NanumMyeongjo')
###################
# ํฐํธ ๋ชฉ๋ก ์ถ๋ ฅ ( ํฐํธ ์ถ๊ฐ ํ ์ ํํ ์ด๋ฆ์ ํ์ธํ๋ ค๋ฉด ํ์
#font_list = [font.name for font in fm.fontManager.ttflist]
#for f in font_list:
# print(f)
###################
# ๊ฐ๋ณ ํฐํธ ์ ์ฉ
NanumMyengjo = fm.FontProperties(
fname='./NANUMMYEONGJO.TTF'
)
NanumMyengjoBold = fm.FontProperties(
fname='./NANUMMYEONGJOBOLD.TTF'
)
# ์๋ฐ์คํฌ๋ฆฝํธ์ ํต์
from js import document
from pyodide import create_proxy
def ๊ทธ๋ํํจ์(event):
์๊ณ ๋ฆฌ์ฆ = document.getElementById("algorithm").value
์ํ๊ฐ = float(document.getElementById("alpha_value").value)
if ์๊ณ ๋ฆฌ์ฆ=='๋ฆฟ์ง':
#=====================================
# ๋ฆฟ์ง๋ชจ๋ธ
๋ฆฟ์ง๋ชจ๋ธ = Ridge(alpha=์ํ๊ฐ)
๋ฆฟ์ง๋ชจ๋ธ.fit(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ๋ จ์ฉ๋ชฉํ)
ํ๋ จ์ ์=๋ฆฟ์ง๋ชจ๋ธ.score(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ๋ จ์ฉ๋ชฉํ)
ํ
์คํธ์ ์=๋ฆฟ์ง๋ชจ๋ธ.score(ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ
์คํธ๋ชฉํ)
document.getElementById("train_score").innerHTML=ํ๋ จ์ ์
document.getElementById("test_score").innerHTML=ํ
์คํธ์ ์
ํ๋ จ์ฉ๋ชฉํ์์ธก = ๋ฆฟ์ง๋ชจ๋ธ.predict(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต)
ํ
์คํธ๋ชฉํ์์ธก = ๋ฆฟ์ง๋ชจ๋ธ.predict(ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต)
else:
#=====================================
# ๋ผ์๋ชจ๋ธ
๋ผ์๋ชจ๋ธ = Lasso(alpha=์ํ๊ฐ)
๋ผ์๋ชจ๋ธ.fit(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ๋ จ์ฉ๋ชฉํ)
ํ๋ จ์ ์=๋ผ์๋ชจ๋ธ.score(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ๋ จ์ฉ๋ชฉํ)
ํ
์คํธ์ ์=๋ผ์๋ชจ๋ธ.score(ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต, ํ
์คํธ๋ชฉํ)
document.getElementById("train_score").innerHTML=ํ๋ จ์ ์
document.getElementById("test_score").innerHTML=ํ
์คํธ์ ์
ํ๋ จ์ฉ๋ชฉํ์์ธก = ๋ผ์๋ชจ๋ธ.predict(ํ๋ จ์ฉ๋ฐ์ดํฐ_๊ฐ๊ณต)
ํ
์คํธ๋ชฉํ์์ธก = ๋ผ์๋ชจ๋ธ.predict(ํ
์คํธ๋ฐ์ดํฐ_๊ฐ๊ณต)
# ๊ทธ๋ํ
fig = plt.figure(
figsize=(15, 7)
)
# ์ฃผ์ ์ด์ํ ์ฌ๋ฐฑ ์์ ๊ธฐ
fig.tight_layout()
plt.title('์ฃผ๊ฐ ์๋ณด์นด๋ ๋งค์ถ๋(' + ์๊ณ ๋ฆฌ์ฆ + ')',
fontproperties=NanumMyengjoBold,
fontsize=32
);
# ์๋ณธ
plt.plot(
ํ๋ จ์ฉ๋ฐ์ดํฐ[:,0],
ํ๋ จ์ฉ๋ชฉํ,
#marker='o',
color='gray',
label='์๋ณธ'
)
plt.plot(
ํ
์คํธ๋ฐ์ดํฐ[:, 0],
ํ
์คํธ๋ชฉํ,
#marker='o',
color='gray'
)
# ํ๋ จ
plt.plot(
ํ๋ จ์ฉ๋ฐ์ดํฐ[:,0],
ํ๋ จ์ฉ๋ชฉํ์์ธก,
marker='d',
color='blue',
label='ํ๋ จํจํด'
)
# ์์ธก
plt.plot(
ํ
์คํธ๋ฐ์ดํฐ[:, 0],
ํ
์คํธ๋ชฉํ์์ธก,
marker='*',
color='green',
label='์์ธกํจํด'
)
plt.legend(
shadow=True
)
plt.xticks(
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐํ๋ จ_๋ํ์ด[:, 0],
์ฃผ๊ฐ๋งค์ถ๋ฐ์ดํฐ๋ ์ง_๋ํ์ด,
rotation=90, fontsize=8)
plt.xlabel('๋ ์ง', fontsize=16)
plt.ylabel('๋งค์ถ๋(๋จ์:๋ง)', fontsize=12)
ax = plt.gca()
# ์ถ๋ง ๊ทธ๋ฆฌ๋
ax.xaxis.grid(True)
# ๋ฐฐ๊ฒฝ์, ๋ง์ง ์กฐ์
ax.set_facecolor('#e8e7d2')
ax.margins(x=0.01, y=0.02)
pyscript.write("graph",fig)
e1 = document.getElementById("algorithm")
e1.addEventListener("change", create_proxy(๊ทธ๋ํํจ์))
e2 = document.getElementById("alpha_value")
e2.addEventListener("change", create_proxy(๊ทธ๋ํํจ์))
</py-script>
</body>
</html>
ํ์์ฒ๋ผ ์๋นํ ๋ก๋ฉ์๊ฐ์ด ์์๋ ๋ค์์ ๋ญ๊ฐ ์ข ํ๋ฉด์ด ๋ค๋ฅด๊ฒ ๋ณด์ด์คํ
๋ฐ์.
๋ฐ๋ก ๊ทธ๋ํ๊ฐ ๋์ค๋ ๋์ ๋ญ๊ฐ ์ ํํ ์ ์๋ ์ ํ์์๊ฐ 2๊ฐ๊ฐ ๋ณด์ด์ค ๊ฒ๋๋ค.
์ฒซ๋ฒ์งธ ์ ํ์์๋ ์๊ณ ๋ฆฌ์ฆ ์ข
๋ฅ๋ฅผ ์ ํํ๋ ์์์ธ๋ฐ์.
๋ง์ฐ์ค๋ก ํด๋ฆญํ๋ฉด 2๊ฐ์ ์ ํํญ๋ชฉ์ด ๋ณด์ด์ค ๊ฒ๋๋ค.
๋ผ์ ํ๊ท๋ฅผ ์ ํํด๋ณผ๊น์?
์ ๊ทธ๋ฌ์ 1.5์ด ์๋ค ๊ทธ๋ํ๊ฐ ๋ด์ต๋๋ค ( ๋
์ ์ฌ๋ฌ๋ถ์ ์ปดํจํฐ ์ฌ์์ ๋ฐ๋ผ ์๊ฐ์ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค )
ํ๋ จ์ ์์ ํ
์คํธ ์ ์๋ ํจ๊ป ํ์๋์๊ตฐ์. ์ ์ค์จ์ ๊ทธ๋ฆฌ ๋์ง ์์๋ฐ์. ๊ทธ๊ฒ์ ์ํ๊ฐ์ด ๋ฎ์์์
๋๋ค.
ํ์ง๋ง ์ด์ ์ํ๊ฐ๋ ์ ํ์์๋ก ์ ํํ ์ ์์ต๋๋ค.
์ํ๊ฐ ์ ํ์์๋ฅผ ํด๋ฆญํ๋ฉด 0.001 ๋ถํฐ 100๊น์ง ์ค ์ ํํ ์ ์๋๋ฐ์.
ํ๋์ฉ ๊ณจ๋ผ์ ์ดํด๋ณด๋ฉด ์ ์ ์ ์ค๋์ ๊ทธ๋ํ๊ฐ ๋ณํํ๋ ๊ฒ์ ๋ณด์ค ์ ์์ต๋๋ค.
๋ฐ์์๋๋ 1์ด~ 1.5์ด ์์๋๋๋ฐ ์ ๋ณด๋ค ์ปดํจํฐ๊ฐ ์ข์ ๋ถ์ ๋ ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ๋ณด์ด์ค ๊ฒ๋๋ค.
์ํ๊ฐ ๊ต์ ์ด๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ๋จ์ํ ์ ํํ๋ ๊ฒ๋ง์ผ๋ก ๋จธ์ ๋ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ์ด
๋ฐ๋ก ํ์ด์คํฌ๋ฆฝํธ์ ํน์ฅ์ ์
๋๋ค.
๋ง๋ฌด~๋ฆฌ
์ด๋ ๊ฒ ์น ๋ธ๋ผ์ฐ์ ๋ด์ ๋ ์๋ ํ์ด์ฌ๊ณผ ์ํตํ๋ ๊ธฐ์ ์ ํ์ด์คํฌ๋ฆฝํธ์์๋ 'ํ๋ก์'๋ผ๊ณ ํ๋๋ฐ์.
๋ค์ ์๊ฐ์๋ ์๋์๋ฆฌ๋ฅผ ์ค๋ช
๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค :)
์๋ฌด์ชผ๋ก ํ์ํ์ ๋ถ๊ป ๋์์ด ๋์
จ์์ง์ :)
๋ฐฉ๋ฌธํด์ฃผ์๋ ๋ชจ๋ ๋ถ๋ค๊ป ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ ์ตํ์
จ๋ค๋ฉด ๊ณต๊ฐ ํ๋ฐฉ, ๋๊ธ์ ๊ตฟ์ก!
๊ฐ์ฌํฉ๋๋ค~
๋ค์๊ฒ์๊ธ : https://itadventure.tistory.com/559
ํ๋(17) - ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ด์คํฌ๋ฆฝํธ, ์์ก๋ค!
๐ฌ 'ํ๋'๋ ํฌ๋ ์ด์ ํ์ด์คํฌ๋ฆฝํธ ๋์ ๊ธฐ์ ์ค์๋ง์ ๋๋ค. ์ง๋ ๊ฒ์๊ธ์์ ์ฐ์ฌ๋๋ ๊ธ์ ๋๋ค. https://itadventure.tistory.com/558 ํ๋(16) - ํ์ด์คํฌ๋ฆฝํธ์ ํน์ข์~์ ์ผ๋ก ๋จธ์ ๋ฌ๋! ๐ณ 'ํ๋'๋
itadventure.tistory.com
'์ฝ๋ฉ๊ณผ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋(18) - ๋๋ค๊ณ ์์ด ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ (8) | 2022.08.29 |
---|---|
ํ๋(17) - ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ด์คํฌ๋ฆฝํธ, ์์ก๋ค! (2) | 2022.08.20 |
ํ์ด์ฌ3 - ๊ธฐ์ด์์ฝ (PDF 3ํ์ด์ง) (6) | 2022.08.15 |
ํ๋!(13) - ์? ์ธ๊ณต์ง๋ฅ ์ ์ค์จ์ด?! - ํ๊ท ๊ฐ๊ฒฉ ์ถ๊ฐ (4) | 2022.08.08 |
ํ๋!(8) - ์๋ณด์นด๋ ํ๋งค๋ (1) | 2022.07.24 |