본문 바로가기
반응형

개발 Tools92

C언어 자료구조 메모리와 포인터 ( 포인터, 포인터와 배열, 포인터 arithmetic, 동적 메모리 할당, malloc ) 메모리 메모리란 데이터를 보관하는 장소이다. 1byte( =8bit ) 단위로 주소가 지정된다. 모든 변수는 주소를 가진다. 변수의 시작 주소 번호가 변수의 대표 번지다 포인터 포인터는 메모리 주소를 값으로 가지는 변수이다. int * ptr; int는 ptr이 가리키는 주소의 저장되는 데이터의 타입이 int임을 나타낸다 연산자 &는 변수로부터 그 변수의 주소를 추출하는 연산자이다. int x = 1, y = 2; int *ip; ip = &x; y = *ip; // 변수의 선언이 아니라 포인터 변수 앞에 등장하면 이 포인터 변수가 저장하고 있는 주소에 저장된 값을 의미한다. *ip = 0; // 포인터 변수가 저장하고 있는 주소에 저장된 값에 0을 집어넣는다. 아래 2개의 *ip에서 *ip는 이 포인터.. 2022. 1. 10.
머신러닝 fit_transform() 과 transform()의 차이점 바로 들어가겠다. fit() fit이란 정규화를 하는 것이다. MinMax에서는 최소와 최대를 인지하는 작업이다. Standardscler에서는 평균과 편차를 계산하는 작업이다 transform() & fit_transform() 예를 들어 MinMax를 하는 train 데이터에 (2, 3, 4, 5)가 들어있다. 이걸 fit_transform() 하면 최솟값인 2는 0으로 최댓값인 5는 1로 매핑된다. 근데 test 데이터에 (2, 3, 4, 6)이 들어있다. train 데이터에서는 5가 최대라고 했는데 6이 있다면 어떻게 해야 할까?? 5를 그대로 1로 매핑하고 6을 1.2.로 매핑한다. train데이터와 test데이터가 같은 조건으로 맞춰줘야 하기 때문에 test데이터에서는 fit()을 하지 않고 .. 2021. 12. 12.
베이즈 정리와 최대 우도 베이즈 정리 - 결론만 알고 과정을 추정하는 것과 같다. 다르게 말해 x가 주어졌을 때 y의 확률을 구하는 것이다. 이미 결과를 알고 그 과정을 역추적하는 것과 같다. 이런 맥락에서 기계학습에 중요한 이론이다. 수식적인 식은 아래와 같다. 예를 들면, 주머니에 병의 번호를 적은 공이 있다. 그리고 3개의 병이 있고 그 병 안에는 어려 공이 들어있다. 이때 공 하나를 뽑았는데 하얀 공이 나왔는데 이 공이 어느 병에서 나왔는지 추정하라고 한다면 어떻게 추정할까?? 이와 같이 된다. 그래서 언듯 보기에는 1번에 흰공이 많으니 확률이 높으리라 생각이 되나, 주머니에서 병의 번호를 뽑는 것과 여러 변수들이 작용한다면 3번에서 뽑았을 확률이 가장 높은 것이다 최대우도 - 매개변수를 모르는 상황에서 매개변수를 추정하.. 2021. 12. 2.
놈 (Norm), 프로베니우스 놈, 코사인 유사도, 정보이론 벡터의 p차 놈(=거리) - Norm이 측정한 벡터의 크기는 원점에서 벡터 좌표까지의 거리 혹은 위상이라고 한다. 행렬의 프로베니우스 놈 코사인 유사도 - 유사도는 -1에서 1까지의 값을 가진다. -1은 완전히 반대되는 경우, 1은 완전히 같은 경우를 의미한다 정보이론 - 확률이 작을수록 많은 정보 - "사막에 눈이 왔다" vs "북국에 눈이 왔다" 이 두 메시지 중 어느 것이 더 많은 정보를 가지냐 했을 때, 사막에 눈이 올 확률이 더 낮기 때문에 더 많은 정보를 가지고 있다고 볼 수 있다. 이를 "자기 정보"라고 한다. 식으로는 아래와 같다 로그에 - 를 붙이니 1보다 작을수록 커지는 것이다. 2021. 11. 24.
바이어스와 분산의 관계 (교차검증, 부트스트랩) 바이어스와 분산은 트레이드오프 관계 일반적으로 용량이 적은 모델은 바이어스는 크고 분산이 작고, 복잡한 모델은 바이어스는 작고 분산은 크다. 기계학습의 목표는 낮은 바이어스와 낮은 분산을 가진 예측기를 제작하는 것이다. 보통 검증집합과 테스트 집합을 나누어 모델을 훈련시키는데 추가적으로 교차검증과 부트스트랩 방식이 있다. 교차검증 - 훈련집합을 등분하여 학습과 평가 과정을 여러 번 반복하여 평균을 구하여 사용한다. 부트스트랩 - 난수를 이용하여 샘플링을 반복한다. - 데이터가 적을 때 사용하면 좋다 2021. 11. 24.