-
멀티캐스트와 브로드 캐스트IOT네트워크프로그래밍 2021. 10. 19. 19:59
멀티캐스트 하나의 패킷을 다수의 호스트로 동시에 전송하는 기능 멀티캐스트에 참여하는 호스트들 : 멀티캐스트 그룹 UDP 패킷을 전송한다. Sender와 Receiver Sender : 임의의 멀티캐스트 그룹에 데이터를 전송하는 호스트 UDP 소켓 생성 티캐스트 그룹으로 데이터 전송 TTL 설정(소켓 옵션 설정) Receiver : 임의의 멀티캐스트 그룹으로부터 데이터를 수신하는 호스트 UDP 소켓 생성 멀티캐스트 그룹 가입 (ip_mreq 구조체). 멀티캐스트 그룹 지정 (소켓 옵션 설정) 브로드캐스트 UDP를 기반 전송 목적지 IP주소 뿐이다. 동일 네트워크에 속하는 모든 호스트에 동시 전송 주소 선택에 따른 브로드캐스트 방식의 구분
-
서포트 벡터 머신기계학습 2021. 10. 15. 15:10
선형 SVM Support Vector Machine 분류 문제에서 일반화(generalization)능력이 입증되어 머신러닝 알고리즘에서 인기가 높다 선형 또는 비선형 분류뿐만 아니라 회귀, 이상치 탐색에도 사용된다. 복잡한 분류 문제와 잘 맞고, 중간 크기의 데이터 셋 소프트 마진 SVM Support vectors가 위치한 경계선에 여유를 두자 여유 변수 (Slack Variable) C 라는 하이퍼파라미터 제공(penalty) Slcak 변수와 규제 C 값을 줄이면 오류를 허용하는 정도가 커지며 , Margin 또한 커진다 C 값을 크게하면 오류를 허용하는 정도가 작아지며 , Margin 또한 작아진다 비선형 SVM 선형적으로 분류할 수 없는 데이터 셋이 존재한다. 다항 특성과 같은 특성을 추가 ..
-
머신러닝빅데이터 분석 2021. 10. 13. 16:56
데이터로 부터 학습하도록 컴퓨터를 프로그래밍하는 과학 -> 다양한 곳에서 말은 서로 다르지만, 공통적으로 '데이터' 부분은 들어간다. 목적 일반화(generalization) : 훈련 데이터로 학습하지만 새로운 데이터에 대한 예측이 최종 목표이다. 확장성 이슈? 알고리즘의 확장성: 알고리즘이 어느 정도 빨라져야, 나중에 다른 것을 추가할 수 있다. 머신러닝 시스템의 종류 지도 학습 vs 비지도 학습 지도 학습(supervised learning) 훈련 데이터 = 특성들(features) + 레이블(label) 레이블은 결과, 특성들은 변수라고 생각하면 편하다. 특성들로 레이블을 예측하는 수학적 모형을 훈련한다. 특성은 레이블을 설명하기 위한, 여러가지 변수들 이라고 생각하면 편하다. 분류 레이블(=tar..
-
멀티쓰레드 기반의 서버구현IOT네트워크프로그래밍 2021. 10. 12. 20:01
쓰레드 '경량화된 프로세스'라고 생각하면 편하다. 프로세스의 단점을 보안하기 위해 나왔다. 리눅스 gcc 에서 쓰레드를 사용하려면, 컴파일 생성 명령어 맨 뒤에 -lpthread라고 해줘야 한다. 프로세스와의 차이점 스텍을 제외한 나머지 메모리 공간을 공유 일부 메모리를 공유하므로 스레드간 통신이 편리하다. 쓰레드를 생성하는 함수 Pthread_create 함수 #include int pthread_create (pthead_t * thread, pthread_attr-t * attr, void * (* start_routine) (void *), void * arg ); 성공 시 0, 실패 시 이외의 값 리턴 thread : 생성된 쓰레드의 ID를 저장할 변수의 포인터를 인자로 전달 Attr : 생성하..
-
pandas빅데이터 분석 2021. 10. 12. 11:13
구조화된 데이터(structured data)를 빠르고 쉽게 다양한 형식으로 가공할 수 있는 강력한 데이터 분석 환경 제공 Pandas 배열 객체 : 행과 열을 레이블로 식별, 여러 가지 타입 허용 NumPy 배열 객체 : 행/열이 단순 정수형 인덱스, 단일 데이터 타입 DataFrame 객체 테이블 형식의 칼럼-기반 데이터 구조 행과 열에 레이블이 부착된 다차원 배열 데이터셋 결합 연결, 조인, 병합이 있다. 연결 pd.concat() 함수 np.concatenate() 함수와 유사 objs 인수는 리스트 혹은 튜플 axis=0은 행 단위로 연결, axis=1은 열 단위 연결 join 인수 서로 다른 소스를 연결하는 경우, 일부 공통 열이 있는 경우 채울 값이 없는 항목은 NA 값으로 채운다. pd.m..
-
다중 접속 서버IOT네트워크프로그래밍 2021. 10. 5. 20:47
연결형과 비연결형 서버 연결형 스트림형 트랜스포트 프로토콜(TCP)을 사용하며 데이터의 안정적인 전달 비연결형 비연결형 트랜스포트 프로토콜(UDP)을 사용하는 서버로 네트웍이 안정적인 데이터의 전달을 책임지지 못하기 때문에 응용 프로그램이 필요하면 이를 보상해 주어야 한다 Stateful(TCP)과 Stateless(UDP) 서버라고 생각하면 된다. Iterative 서버 클라이언트의 서비스 요구를 순서대로 처리해 주는 서버 request 처리 시간이 짧은 경우에 사용 Iterative 서버는 프로그램 구현이 concurrent 서버보다 비교적 간단 -> 은행 창구에서 한명의 점원이 일을 처리하는 것과 비슷하다. Concurrent 서버 동시에 여러 클라이언트들에게 서비스를 제공하기 위하여 새로운 클라이..
-
Numpy빅데이터 분석 2021. 10. 4. 13:40
Numpy 숫자 배열을 효과 적으로 저장하고 가공하는 전문도구 파이썬 데이터 과학 도구 생태계의 핵심 Numpy 배열을 연속된 메모리 블록에 데이터를 저장한다. 벡터화 연산 : 루프 없이 데이터 처리 작업이 가능하다 ndarray 배열 생성 np.array() 함수를 써서, 배열을 생성한다. np.zeros(10, dtype=int) #0으로 채운 배열 np.ones((3,5), dtype=float) #1로 채운 배열 np.full((3,5), 3.14) #같은 값으로 채운 배열 np.arange(0, 20, 2) #선형 수열로 채운 배열(step), range()와 유사 np.linspace(0, 1, 5) #일정한 간격으로 채운 배열(개수) np.random.seed(0) #재현을 위한 씨드값 np..
-
분류 알고리즘기계학습 2021. 10. 1. 14:55
어떤 데이터가 주어질 때, 그 데이터의 정체를 판별해 주는 것이다. 로지스틱 회귀 어떤 데이터가 어떤 범주에 속할 확률을 0~1 값으로 예측해준다. 무게, 길이, 대각선, 높이 ,두께 --> faeture 그림에서 0.5 이상을 때, ' x '이고, 0.5 이하이면, ' y '라고 할 수 있다. 확률적 경사 하강법 여러 종류의 문제에서 최적의 해법을 찾는 일반적인 최적화 알고리즘 비용 함수를 최소화하기 위해 반복해서 파라미터를 조정하는 것이다. 학습률 하이퍼파라미터를 결정되는 스템의 크기가 중요하다. 배치 경사 하강법 매 스텝에서 전체 훈련 세트를 사용해서 그레이디언트를 계산한다. 훈련 세트가 커지면 매우 느려진다. 확률적 경사 하강법 매 스텝에서 한 개의 샘플을 무작위로 선택하고 그 샘플에 대한 그레이..