์ต์ฐ์์ ์์์
-
ํด๋น ํด๋๋ ์ฑ ๊ฐ๋ฐ์ ์ํด ์ฌ์ฉ๋ ์ฝ๋์ ์ด๋ฏธ์ง ํ์ผ๋ก ์ฑ์ ์คํ์ํค๊ธฐ ์ํด์๋ 'App๊ฐ๋ฐ ์ฝ๋' ํด๋๋ฅผ ํ ๋ฒ์ ๋ค์ด ๋ฐ์์ผ ํจ. ํด๋์ ์กด์ฌํ๋ "main.py" ํ์ผ์ ์ฑ์ ์คํํ๊ธฐ ์ํ ๋ฉ์ธ ์์ค ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ์คํํ๊ธฐ ์ํด์ ์๋ ๋ฉ๋ด์ผ์ ์ฐธ๊ณ .
-
Anaconda 3 ๋ค์ด๋ก๋ ๋ฐ ์ค์น (https://www.anaconda.com/distribution/)
-
Anaconda prompt๋ฅผ ์คํํ์ฌ ๊ฐ์ํ๊ฒฝ์ kivy ์ค์น
ํ๋กฌํํธ ์ฐฝ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒ.
conda create -n my_python_env activate my_python_env conda install kivy -c conda-forge
-
Pycharm ๋ค์ด๋ก๋ ๋ฐ ์ค์น (https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC)
์ค์น ์ ์ค์น ์ต์ ์์ create associations-.py์ ๋ฐ์ค์ ์ฒดํฌํ ๊ฒ.
-
Pycharm ์คํ - Settings - Project Interpreter ์ค์
-
์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํ์ฌ conda environment - existing environment ์ ํ - interpreter ๊ฒฝ๋ก๋ users/์ด๋ฆ/Anaconda3/envs/my_python_env(๊ฐ์ํ๊ฒฝ)/python.exe
-
New projects ์์ฑ - 'App ๊ฐ๋ฐ ์ฝ๋' ํด๋๋ฅผ ๊ฒฝ๋ก๋ก ์ค์ , ๊ทธ์ค main.py ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
-
main.py ํ์ผ ์คํ ์ ๊ตฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ตฌ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์์.
-
#####################################################################################
-
ํด๋น ํด๋ ๋ด ํ์ผ๋ค์ .ipynb ํ์์ ํ์ผ๋ก, Google drive ๋ด Google Colaboratory๋ฅผ ํตํด ์คํํ๊ฑฐ๋, Anaconda 3์ Jupyter(Notebook / Lab)์ ์ฌ์ฉํ์ฌ ์ด๋ํด์ผ ํจ. (Google Colab ์ฌ์ฉ ๊ถ์ฅ) ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋์ด์๋ ์ํ์ด๋ฉฐ, ์ฌ์คํ์ ์ํ ๊ฒฝ์ฐ ์ฝ๋ ์ผ์ชฝ์ PLAY ๋ฒํผ์ ํด๋ฆญํ ๊ฒ *
[Converting API data to csv.ipynb]
iot.api(https://datahubapi.korea.ac.kr/datathon/iot) ๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ API ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ๊ตฌํ๋ ํ์ด์ฌ ์ฝ๋์ ํธํ๋๋๋ก .csv ํ์ผ๋ก ์ ์ฅํ๋ ์ฝ๋
[Crawling Weather Data.ipynb]
๊ธฐ์์ฒญ์์ ์ค์๊ฐ์ผ๋ก ๋ฐฐํฌํ๋ ์ฑ๋ถ๊ตฌ ์์๋์ ์จ๋ ๋ฐ ์ต๋๋ฅผ ํฌ๋กค๋งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฝ๋
[Data Preprocessing.ipynb]
์ ๊ณต๋ SK ๋ฏธ๋๊ด ๋ด IoT ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ "data.csv"ํ์ผ๋ก ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฐ EDA๋ฅผ ์ํํ ์ฝ๋. co2, dust, temperature, humidity ๋ณ์์ ๋ถํฌ ์ธก์ , '์๊ฐ'๊ณผ 'Floor' ๋ณ์ ์ถ๊ฐ๋ฅผ ํตํด ์๊ฐ๋ณ, ์ธต๋ณ ๊ทธ๋ฃนํ ์งํ. ๊ฐ ๋ณ์์ ๋ถํฌ ์๊ฐํ, ์๊ด ๊ด๊ณ ๋ถ์ ๋ฐ PCA, ์ธต๋ณ ๋ค์ค๋น๊ต๋ฅผ ์ํ Tukey's HSD test ๋ฑ ๋ณ์์ ์ ๋ฐ์ ์ธ ํน์ฑ์ ํ์ ํ๊ณ ์๊ฐํํ๊ธฐ ์ํ ์ฝ๋.
[Regression with Weather Data.ipynb]
ํฌ๋กค๋งํ ๊ธฐ์์ฒญ ์จ/์ต๋ ๋ฐ์ดํฐ๋ง์ผ๋ก ๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ/ ์ต๋๋ฅผ ์ถ์ ํ๋ ํ๊ท์์ ์ ํฉํด๋ณด๊ธฐ ์ํด ์ฌ์ฉ๋ ์ฝ๋
[Regression Time Series AR(8) Model vs Weather + Each Variable + Mean.ipynb]โ
๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ณ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ์ ๊ธฐ์์ฒญ ์จ/์ต๋ ๋ฐ์ดํฐ๋ก ์ถ์ ํ๋ ํ๊ท์์ ์ ํฉํ๊ธฐ ์ํด์ ์ฌ์ฉ๋ ์ฝ๋. ์๊ณ์ด AR(8) ๋ชจํ์ ์ฌ์ฉํ์ฌ ์ ํฉํ ์๊ณผ 'Weather + Each Variable + Mean' ๋ชจํ์ ๋น์ ํ ํ๊ท์์ ๋น๊ต. ์ด๋ฐ์ ๋ค๋ฅธ ์ฝ๋๋ค์์ ์ ํฉ๋ ํ๊ท์๊ณผ๋ ๋น๊ต. Stepwise Selection์ ํตํด ๊ฐ์ฅ ๋ฎ์ AIC๋ฅผ๋ณด์ด๋ 'Weather + Each Variable + Mean' ๋ชจ๋ธ์ด ์ต์ข ์ ์ผ๋ก ์ ์ ๋์์. ์ฆ, ์ต์ข ์ ์ผ๋ก ์ ํ๋ ํ๊ท์์ '๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ๋/์ต๋ ~ ๊ธฐ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ํตํด ์์ง๋ ์ฑ๋ถ๊ตฌ ์์๋์ ์จ๋/์ต๋ + ์ฃผ๋ณ ๊ณต๊ฐ์ ์จ๋/์ต๋ + ์ฃผ๋ณ ๊ณต๊ฐ์ ์จ๋/์ต๋์ ํ๊ท '์ด๋ค.
[Regression with Interaction.ipynb]
๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ณ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ์ ๊ธฐ์์ฒญ ์จ/์ต๋ ๋ฐ์ดํฐ๋ก ์ถ์ ํ๋ ํ๊ท์์ ์ ํฉํ๊ธฐ ์ํด์ ์ฌ์ฉ๋ ์ฝ๋.
[Regression with Mean Variable.ipynb] ์ฝ๋์์ ์ ํฉํ ํ๊ท์์ ์ถ๊ฐ์ ์ผ๋ก ๊ธฐ์์ฒญ ์จ/์ต๋ ๋ฐ์ดํฐ์ ์ฃผ๋ณ ํ์ต ๊ณต๊ฐ ๋ฐ์ดํฐ์ ๊ตํธ ์์ฉ (Interaction Term) ๋ณ์๋ฅผ ์ถ๊ฐํจ.
[Regression with Mean Variable.ipynb]
๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ณ ํ์ต ๊ณต๊ฐ์ ์จ/์ต๋ ๋ฐ์ดํฐ์ ๊ธฐ์์ฒญ ์จ/์ต๋ ๋ฐ์ดํฐ๋ก ์ถ์ ํ๋ ํ๊ท์์ ์ ํฉํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ฝ๋. ์ฌ๊ธฐ์ Mean Variable์ "์ฃผ๋ณ๊ณต๊ฐ.txt" ํ์ผ์์ ์ ์๋ ๊ฐ ๊ธฐํ ํ์ต๊ณต๊ฐ์ ๋์๋๋ '์ฃผ๋ณ ํ์ต ๊ณต๊ฐ'์ ์จ๋ ๋ฐ ์ต๋์ ํ๊ท ์ผ๋ก ๋ง๋ค์ด์ง ์๋ก์ด ๋ณ์๋ฅผ ์๋ฏธํจ.
[SSS์ง์ ๊ฐ๋ฐ์์ (with 0616 data).ipynb]
2020๋ 6์ 16์ผ์ IoT ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก, SSS์ง์๋ฅผ ๊ณ์ฐํ๋ ์ฝ๋. ์์๊ฐ, ์ง๋์น๊ฒ ํฐ ๊ฐ ๋ค์ ์ ๊ฑฐํ๋ ์ด์์น ์ ๊ฑฐ ์ฝ๋, ์ฌ์ฉ์ ๋ง์ถคํ ๊ฐ์ค์น ๊ณ์ฐ ์ฝ๋, ๊ฐ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ํ๊ฒฝ ๋ณ์์ ์ ์๋ฅผ ๋ถ์ฌํ๋ ์ฝ๋, ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ ๋ณ์๋ค์ ์ ์๋ฅผ ๊ฐ์คํ๊ท ํ์ฌ SSS์ง์๋ฅผ ๊ณ์ฐํ๋ ์ฝ๋๊ฐ ํฌํจ๋์ด ์์. ๊ฒฐ๊ณผ๋ฌผ๋ก '0616SSSdata.csv' ํ์ผ์ด ์ถ๋ ฅ๋๋๋ก ์ฝ๋ฉ๋์ด์์.
[SSS์ง์ ์๊ฐํ ๊ตฌํ(with 0616 17์ data).ipynb]โ
์์ [SSS์ง์ ๊ฐ๋ฐ์์ (with 0616 data).ipynb]์ ๊ฒฐ๊ณผ๋ฌผ์ธ "0616SSSdata.csv"ํ์ผ๊ณผ "0616weather_data.csv"ํ์ผ์ ๋ถ๋ฌ์ 2020๋ 6์ 16์ผ 5์ SK ๋ฏธ๋๊ด ๋ด๋ถ ์บ๋ด์ค ๋ฐ ์คํฐ๋๋ฃธ๊ณผ ๊ธฐํ ํ์ต ๊ณต๊ฐ์ SSS์ง์๋ฅผ ์ฝ๋ ์์ ์๊ฐํํ์ฌ ๋ํ๋ด๋ ์ฝ๋. ๊ฐ ๊ธฐํ ํ์ต ๊ณต๊ฐ์ SSS์ง์๋ ์์ ๊ตฌํ๋ ํ๊ท ๋ชจํ์ ์ํด ์์ธก๋ ๊ฐ. ์ด ํ๋ก์ ํธ์ ๊ฐ์ฅ ๋ฉ์ธ ์ฝ๋
[T-test comparison(humidity).ipynb]
"data_for_regression.csv" ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํตํด 2020๋ 8์ 11์ผ 5์๊ฒฝ ์๋์ด๋ ธ ์ฅ์น๋ฅผ ํตํ์ฌ ์ง์ ์ธก์ ํ ๊ฐ ๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ๋์ SK ๋ฏธ๋๊ด IoT ์ผ์ API๋ฅผ ํตํด ์ธก์ ๋ ์คํฐ๋๋ฃธ ๋ฐ ์บ๋ด์ค์ ์ต๋์ ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด๊ธฐ ์ํด T-test๋ฅผ ์ ์ฉํ ์ฝ๋.
[T-test comparison(temperature).ipynb]
"data_for_regression.csv" ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ํตํด 2020๋ 8์ 11์ผ 5์๊ฒฝ ์๋์ด๋ ธ ์ฅ์น๋ฅผ ํตํ์ฌ ์ง์ ์ธก์ ํ ๊ฐ ๊ธฐํ ํ์ต ๊ณต๊ฐ์ ์จ๋์ SK ๋ฏธ๋๊ด IoT ์ผ์ API๋ฅผ ํตํด ์ธก์ ๋ ์คํฐ๋๋ฃธ ๋ฐ ์บ๋ด์ค์ ์จ๋์ ์ฐจ์ด๊ฐ ์๋์ง ์์๋ณด๊ธฐ ์ํด T-test๋ฅผ ์ ์ฉํ ์ฝ๋.
#########################################################################################
- ํด๋น ํด๋ ๋ด ํ์ผ์ ์๋์ด๋ ธ ์ฅ์น๋ฅผ ํตํ '๊ธฐํ ํ์ต ๊ณต๊ฐ' ์จ/์ต๋ ์ธก์ ์ ์ํด ์ฌ์ฉ๋ .ino ์ฝ๋์ ํ๊ท ๋ชจํ ์ต์ ํ๋ฅผ ์ํ Quadratic Programming ์คํ์ฉ R ์ฝ๋๋ก ๊ตฌ์ฑ๋จ. .ino ํ์ผ์ ๊ฒฝ์ฐ Wemos ์จ์ต๋ ์ธก์ ์ ์ฉ ๋๋ผ์ด๋ฒ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํ๋ฉฐ, R ์ฝ๋์ ๊ฒฝ์ฐ R ๋๋ R Studio๋ฅผ ์ค์นํ์ฌ ์คํํด์ผ ํจ.
[code.ino]
์๋์ด๋
ธ ์ฅ์น๋ฅผ ํตํด SK ๋ฏธ๋๊ด ๋ด ์จ/์ต๋๋ฅผ ์ง์ ์ธก์ ํ๊ธฐ ์ํ ์คํ ์ฝ๋
[Quadratic Programming.R]
QP Solver๋ฅผ ์ด์ฉํ์ฌ ํ๊ท์์ ์์คํจ์๋ฅผ ์ต์ ํํ๊ธฐ ์ํด์ ์ฌ์ฉ๋ ์ฝ๋
[stop.ino]
์๋์ด๋
ธ ์ฅ์น๋ฅผ ํตํ ์ผ์ ์ธก์ ์ ์ค์งํ๊ธฐ ์ํ ์ฝ๋
[WiFiClient.ino]
์๋์ด๋
ธ ์ฅ์น๋ฅผ ๋ฌด์ ์์ดํ์ด์ ์ฐ๊ฒฐํ๋ ํด๋ผ์ด์ธํธ ์ฝ๋
#########################################################################################
[floorB1-final.png ~ floor5-final.png]
๋ณด๋ค ์ฌ์ฉ์ ์นํ์ ์ธ UI์ ์ง๊ด์ ์ธ ์๊ฐํ๋ฅผ ์ํด ๋๋ฉด์ ๊ธฐ๋ฐ์ผ๋ก ์ง์ ๊ทธ๋ฆฐ ์ฝ๋ ์ด๋ฏธ์ง ํ์ผ.
์ดํ SSS ์ง์ ์๊ฐํ๋ฅผ ์ํด ํ์.
#######################################################################################
-
ํ๋ก์ ํธ์ ์ฌ์ฉํ ๋ชจ๋ Raw Data. ์ด๋ํ๊ธฐ ์ํด์ ์์ , ๋ฉ๋ชจ์ฅ, ๋๋ .csv / .txt ์ ์ฉ ๋ฆฌ๋๊ฐ ํ์ํ๋ค.*
[0616SSSdata.csv]
6์ 16์ผ ์์ iot ์ผ์ ๋ฐ์ดํฐ์ ๊ณ์ฐ๋ ์จ๋, ์ต๋, co2, dust ๊ฐ๊ฐ์ ์ ์์ ์ด๋ฅผ ํตํด ๊ณ์ฐ๋ SSS์ง์๋ฅผ ์ปฌ๋ผ์ผ๋ก ์ถ๊ฐํ ๋ฐ์ดํฐ ํ์ผ. "SSS์ง์ ์๊ฐํ ๊ตฌํ(with 0616 17์ data).ipynb" ํ์ผ์ ์คํ์ํค๊ธฐ ์ํด ํ์.
[0616weather_data.csv]
์ง์ ํฌ๋กค๋งํ 6์ 16์ผ์ ๊ธฐ์์ฒญ ์จ๋ ๋ฐ ์ต๋ ์ธก์ ๋ฐ์ดํฐ. "SSS์ง์ ์๊ฐํ ๊ตฌํ(with 0616 17์ data).ipynb" ํ์ผ์ ์คํ์ํค๊ธฐ ์ํด ํ์.
[0811weather_data.csv]
์ง์ ํฌ๋กค๋งํ 8์ 11์ผ์ ๊ธฐ์์ฒญ ์จ๋ ๋ฐ ์ต๋ ์ธก์ ๋ฐ์ดํฐ. SK ๋ฏธ๋๊ด ๋ด '๊ธฐํ ํ์ต ๊ณต๊ฐ' ํ๊ฒฝ ๋ณ์(์จ/์ต๋) ์์ธก ๋ชจํ์ ๊ตฌ์ถํ ๋ ์ฌ์ฉํ์๋ ๋ฐ์ดํฐ์ด๋ค.
[data.csv]
.txt ํ์ผ๋ก ์ ๊ณต๋ฐ์ ์ฌ๋ฌ IoT ์ผ์ ๋ฐ์ดํฐ ํ์ผ์ ํฉํ์ฌ ๊ฐ๊ณตํ๊ธฐ ์ฌ์ด ํ์์ .csv ํ์ผ๋ก ํต์ผํ ํ์ผ
[data_for_regression.csv]
SK ๋ฏธ๋๊ด ๋ด ๊ธฐํ ํ์ต ๊ณต๊ฐ์ ํ๊ฒฝ ๋ณ์(์จ/์ต๋)๋ฅผ ์์ธกํ๋ ํ๊ท์์ ์ ํฉํ๊ธฐ ์ํด ์ฌ์ฉ๋ ๋ฐ์ดํฐ. 2020๋ 8์ 11์ผ ๊ฐ ๊ธฐํ ํ์ต ๊ณต๊ฐ์์ 30๋ถ์ฉ ์๋์ด๋ ธ ์ฅ์น๋ฅผ ํตํด ์ง์ ์ธก์ ํ ๋ฐ์ดํฐ์ ๋์๊ฐ๋์ SK ๋ฏธ๋๊ด IoT ์ผ์ API์์ ์ธก์ ๋ ๊ฐ์์ค ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํด๋์ ํ์ผ.
[iot_11_5322.txt ~ iot_11_5325.txt]
2020.06-2020.07 ์ ์ธก์ ๋ SK ๋ฏธ๋๊ด iot ์ผ์ ๋ฐ์ดํฐ.
[iot_11_26.txt ~ iot_11_34.txt]
2020.01-2020.03 ์ ์ธก์ ๋ SK ๋ฏธ๋๊ด iot ์ผ์ ๋ฐ์ดํฐ.
[roompixel.txt]
์์ฒด ์ ์ํ SK ๋ฏธ๋๊ด ๋ด ์ฝ๋ (Images ํด๋ ๋ด png ํ์ผ ์ฐธ์กฐ) ์์ SSS์ง์๋ฅผ ์๊ฐํํ๊ธฐ ์ํด ๊ฐ ํ์ต ๊ณต๊ฐ(๊ฐ์์ค, ๊ธฐํ ํ์ต ๊ณต๊ฐ ๋ฑ)๊ณผ ์ฝ๋ ๋ด ํฝ์ ๊ฐ์ ๋งค์นญ์ํจ ํ ์คํธ ํ์ผ. ์ดํ SSS์ง์ ์๊ฐํ ์ฝ๋ ์๋ ์ํด ํ์.
[์ฃผ๋ณ๊ณต๊ฐ.txt]
๊ธฐํ ํ์ต ๊ณต๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์์ธก ํ ๋ ํ์ํ '์ฃผ๋ณ ํ์ต ๊ณต๊ฐ'์ ์ ์ํด ๋์ ํ์ผ. ๊ฐ ๊ธฐํ ํ์ต ๊ณต๊ฐ๊ณผ ๊ทธ ์ฃผ๋ณ์ ์กด์ฌํ๋ ํ์ต ๊ณต๊ฐ(์บ๋ด์ค ๋ฐ ์คํฐ๋๋ฃธ)์ ๋งค์นญํ์ฌ ์ ๋ฆฌํด๋์ ํ์ผ.
#######################################################################################