중간고사 정리
중간고사 힌트 - 20문제 중 객관식 9문제 , 주관식 11문제
- 빅데이터 패러다임, 특징, 정형/비정형 데이터
- 빅데이터 기술과 내용 연결, 데이터 분석 설명
- 데이터 수집기술, 데이터 분석 종류 및 내용
- 아두이노 환경, IOT 기기용 통신 프로토콜, node-red
- 인터넷 보안 설정, node-red 노드 설명, node-red 기동 및 결과
빅데이터 패러다임
- 대량성, 다양성, 속도, 정확성, 가치
데이터 종류
- 정형데이터 : 구조화된 데이터(테이블, 관계형 DB)
- 비정형 데이터 : 구조가 없거나 부분만 구조화(텍스트, 이미지, 오디오)
- 반정형 데이터 : 데이터 내용에 구조가 포함(html, xml, json, yml)
빅데이터 처리
- 데이터 수집 : 크롤링, 스크래핑, 센서, API, 로그파일 등
- 데이터 전처리 : 정제, 구조화, 결측치 및 이상치 제거, 스케일링, 정규화
- 데이터 저장 : 분산파일 시스템, NoSQL DB 이용
- 데이터 분석 : 통계적, 기계 학습, 딥 러닝 등
- 대용량 데이터 처리 도구 : Hadoop, Apache Spark, Apache Flink와 같은 도구
- 데이터 시각화 :
- 스케일링 : 데이터의 “범위(크기)” 조정 ex) Min-Max [0, 1] 범위로 조정
- 정규화 : 범주형 > 수치형, 데이터 “분포”를 표준 정규 분포로
- 크롤링 vs 스크래핑 : 스크래핑은 다른 링크로 이동 안함
MQTT"Message Queuing Telemetry Transport"
- 경량 메시징 프로토콜로서,
- IoT 및 M2M 통신에서 매우 널리 사용되는 통신 프로토콜
- 발행/구독 모델 : 클라이언트는 특정 topic로 데이터를 발행하고, 다른 클라이언트는 해당 주제를 구독하여 데이터를 수신합니다.
- 경량 및 대역폭 효율적:경량 프로토콜로 작은 디바이스와 통신에 적합. 오버헤드가 낮고, 작은 패킷 크기로 데이터 전송
- 품질 등급 (Quality of Service, QoS): 메시지 전달의 신뢰성을 조절. QoS 레벨 0(At most once), 1(At least once), 2(Exactly once)을 지원
- 유지 관리 가능한 연결: 클라이언트는 연결을 유지하거나 연결을 단절한 후 다시 연결 가능. 끊어진 네트워크 연결이나 이동하는 디바이스에 적합합니다.
- 세션 상태: MQTT 클라이언트는 세션 상태를 유지할 수 있어, 연결이 끊겨도 최근 메시지 상태를 유지할 수 있습니다.
- 보안 기능:TLS/SSL과 같은 보안 프로토콜을 지원하여 데이터의 암호화와 보안 통신을 보장합니다.
- 클린 세션 및 영속적 세션:클리어 세션(클라이언트가 연결 종료 시 세션 정보를 삭제) 및 영속적 세션(세션 정보를 보존)을 지원
``
판다스
시리즈
- 1차원 배열
- 인덱스로 접근
데이터프레임
- 2차원 배열
- 행접근 : df.loc[행 이름] 또는 df.행이름
- 열접근 : df[열 이름] 또는 df.열이름
- 셀접근 : df[열]
MQTT 구현
MQTT 개요
Message Queue Telemetry Transport
IoT기기용 M2M 프로토콜
TCP/IP 방식으로 작동
메모리 용향이 적어도 가능하며 통신 부하가 적다
허브와 스포크 방식 토폴로지을 사용 중심인 허브에는 브로커가 있고, 각각의 스포크에는 센서나 디바이스가 온다
MQTT에서 네트워크에 접속하는 디바이스를 클라이언트, 중심에서 데이터ㄹ의 송수신을 관장하는ㄴ 서버는 MQTT 브로커라고 한다.
토픽(데이터 이름)과 페이로드(데이터 내용) < 이거를 브로커에 송신
ESP8266에서 와이파이는 아래 두가지 모드를 지원
AP 모드
: ESP8266 중심으로 다른기기 네트워크에 접속하는 것
STA 모드
: ESP8266이 이미 구성되어 있는 네트워크에 접속
발행
: 클라이언트와 브로커 간의 데이터 송신구독
: 특정 토픽의 페이로드 수신을 MQTT에 알려주는 행위서비스 품질
: 0,1,2(몇번할지 재전송 할지, 높으면 좋은거)최종 값 보관
: 데이터 발행 시 브로커에 보관 여부를 결정유언
: 끊어지면 자동으로 발송
Mosquitto
대표적인 MQTT 브로커
모스퀴토 설정 파일 - mosquitto.conf
allow_anonymous false` # 익명 사용자 차단
password_file /etc/mosquitto/passwd # 사용자 이름, 암호를 저장한 파일 경로
mosquitto_passwd -c /etc/mosquitto/passwd <username> #
acl_file /etc/mosquitto/aclfile # ACL(Access Control List)
# TLS/SSL 사용
listener 8883
cafile /etc/mosquitto/ca.crt
certfile /etc/mosquitto/server.crt
keyfile /etc/mosquitto/server.key
Node-RED
시각적 프로그래밍 도구로서, 인터넷을 사물과 서비스를 연결하는 IoT (Internet of Things) 프로젝트와 자동화 작업을 간단하게 구축할 수 있도록 도와주는 오픈 소스 플로우 기반 통합 플랫폼
기말 시험문제 키워드
- 크롤링, API, BeautifulSoup, 와인분류, 토큰화/어간/표제어 추출, 이와 관련한 소스 설명, 선형회귀분석에서 소스 설명, acccuracy/precision/recall/F1/ROC_AUC 값 구하기, K-Means, 엘보 미 실루엣 방법 설명
크롤링
웹에서 데이터를 수집하는 작업 크로러 또는 스파이더라는 프로그램 사용
import urllib.request # 웹과 통신할 수 있는 라이브러리
군집화
비지도해서 1차 검증 후 이게 확실하다하면 라벨링을 걸어서 지도학습
아니면 지도학습을 하기 전에 준지도학습을 하여 검증을 할 수도 있음
비지도 학습은 상용화하기에는 무리가 있다.
데이터 상태나 분야의 특성에 맞추어 비지도 > 준지도 > 지도로 학습을 진행하는 것이 좋음
K-means
k개의 중심점을 임의 위치로 잡고 중심점을 기준으로 가까이 있는 데이터를 확인한 뒤 그들과의 거리(유클리드 거리)와 제곱을 사용하여 평균 지점으로 이동하는 방식
엘보 방법
왜곡: 클러스터의 중심점과 클러스터 내의 데이터 거리 차이의 제곱의 합 클러스터의 개수 k의 변화에 따른 왜곡의 변화를 그래프로그려보면 그래프가 꺾이는 지점인 엘보가 나타나는데 그 지점의 k를 최적화 k로 선택
실루엣 분석
클러스터 안에서 데이터가 얼마나 조밀하게 있는지 응집력: 같은 클러스터 안에서 데이터가 얼마나 조밀하게 있는지 분리도: 다른 클러스터의 데이터가 얼마나 떨어져 있는지