본문 바로가기

전체 글

(29)
AIOT - 붓꽃(iris) 데이터 군집화 예제 오늘은 붓꽃(iris) 데이터 군집화 예제를 다뤄보겠습니다. 예제 상세 내용은 아래와 같습니다. 1. 4개의 특성이 있지만, 차원 축소를 이용해 더 적은 수의 특성으로 학습을 시도할 것이다(PCA). 2. 더 적은 수의 특성으로 학습을 할 때는 군집화 모델을 사용하자(KMeans). 3. 군집화 학습을 마친 뒤에는 각 라벨에 대한 최적의 시각화 도구를 사용해 시각화를 하자(뭐가 좋을까?). + 붓꽃 데이터의 종류가 3가지(setosa, versicolor, virginica)임을 이미 알고있으니 클러스터는 3개로 사용해도 좋음 iris 데이터를 데이터프레임으로 가져오기 iris 데이터셋을 불러와 데이터프레임 형태로 저장합니다. 붓꽃의 종류(target)은 비지도 학습을 진행할것이므로 따로 저장하지 않습니..
AIOT - (혼공머신) 도미, 빙어 분류 예제 혼공머신 2장에서 k-최근접 이웃 알고리즘을 통해 도미와 빙어 분류 알고리즘을 만들었는데요, 길이 : 25, 무게 : 150인 도미 데이터를 빙어로 분류하는 오류를 해결하는 방법입니다. 데이터 전처리에 대한 내용이라고 보시면 됩니다. # 데이터 링크 http://bit.ly/bream_smelt # 파이썬 리스트 데이터 fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0,..
AIOT - iris(붓꽃) 데이터 예측 및 시각화 [K-최근접 이웃 알고리즘으로 붓꽃 품종 예측하기] # 필요한 패키지 설치 from sklearn.datasets import load_iris from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score from sklearn.model_selection import train_test_split # sklearn.datasets에 포함된 iris 데이터 가져오기 iris = load_iris() # 예측 모델 생성 dt_clf = KNeighborsClassifier() # 검증집합과 학습집합으로 분리(검증30%, 학습70%) X_train, X_test, Y_train, Y_test = tra..
AIOT - 데이터프레임 다루기 오늘은 파이썬의 pandas 라이브러리를 활용하여 데이터프레임을 다뤄보겠습니다. pandas는 주로 데이터 분석 및 처리를 위해 쓰이는 오픈 소스 파이썬 라이브러리로, 행과 열로 이루어진 2차원 데이터를 효율적으로 가공/처리할 수 있는 다양한 기능을 제공합니다. pandas의 핵심 자료구조는 1차원 데이터를 다루기 위한 시리즈(Series)와 2차원 데이터를 다루기 위한 데이터프레임(DataFrame)입니다. 시리즈와 데이터프레임은 데이터에 인덱스를 지정하여 관리하는 방식의 자료구조로 시리즈는 하나의 열로 구성, 데이터프레임은 열이 여러개인 형태라는 점에서 차이를 보입니다. 예제를 통해 데이터프레임에 대해 자세히 다뤄보겠습니다. 그 전에 흥미로운 데이터를 다뤄보면 더 재밌을 것 같아 캐글(Kaggle)이..
AIOT - Git 명령어 정리 [깃 준비단계 명령어] $ git config -- global user.name "사용자명(닉네임)" 깃 저장소에서 사용할 사용자 정보 중 사용자명을 설정하는 깃 명령어 $ git config --global user.email "사용자메일" 깃 저장소에서 사용할 사용자 정보 중 사용자 메일 주소를 설정하는 깃 명령어 위 명령어를 사용할 때 깃허브 계정 닉네임과 메일로 맞춰주는게 좋습니다. (맞추지 않을 시 권한 문제 발생 가능) git remote set-url origin https://계정명@github.com/계정명/저장소명.git 권한 문제 발생 시 해결 명령어 $ config --global color.ui auto 출력되는 command line을 읽기 쉽도록 자동으로 색깔 설정한다. $ ..
AIOT - 미니프로젝트(1) , 가변저항 일지 페이지 만들기 오늘은 그동안 공부한 아두이노 시리얼통신, 파이썬 시리얼통신, mysql, nodejs 등을 활용하여 가변저항 일지 페이지를 만드는 미니 프로젝트를 진행해보았습니다. 프로젝트 순서는 다음과 같습니다. 1. 시리얼통신을 통해 명령어를 전달받으면 가변저항 값을 출력하는 스케치를 작성한다 2. pyserial을 이용해 명령어를 전달하고, 출력값을 전달받을 수 있는 파이썬 스크립트를 작성한다. 3. 앞의 2번 파이썬 스크립트에 출력값을 전달받으면 MySQL을 이용해 데이터를 저장하는 기능을 추가로 구현한다(MySQL 테이블은 이미 만들어져 있는 상태로) 4. nodejs를 이용한 서버를 만들고, MySQL에서 데이터를 조회(GET)하는 REST API를 만든다. 생성, 수정, 삭제는 고려하지 않아도 됨. 5. ..
AIOT - MQTT + WeMos보드로 LED 제어하기 오늘은 MQTT를 활용하여 위모스 보드에서 브로커로부터 전달된 토픽을 읽어들이고, 그때 그때 LED의 온오프를 제어할 수 있는 프로그램을 만들어 보겠습니다. 예제의 내용은 다음과 같습니다. 1. 노드 서버에서 제공하는 index.html에 버튼이 두 개 나타나도록 한다. 하나는 LED 켜기 버튼, 하나는 LED 끄기 버튼 => 켜기 버튼의 메시지명은 "led_on_event" => 끄기 버튼의 메시지명은 "led_off_event" 2. 노드 소켓 서버를 거쳐 MQTT 브로커에 위 이벤트 내용이 전달되도록 하자. 3. 위모스 보드에서 브로커로부터 전달된 토픽을 읽어들이고, 그때그때 LED의 온오프를 제어할 수 있도록 하자. 먼저 package.json파일입니다. { "name": "mqtt-server"..
Node js - REST API REST API 란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST 부터 알아보도록 하겠습니다. REST REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것 1. HTTP URI( Uniform Resource Identifier )를 통해 자원을 명시하고 2. HTTP Method( POST, GET, PUT, DELETE, PATCH 등)를 통해 3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. REST API란 이러한 REST의 원리를 따르는 API를 의미합니다. 오늘 작성한 REST API 프로젝트 코드(app.js) 예제를 통해 자세..