david의 CS Blog 자세히보기

[Machine Learning] 3. 머신러닝과 문제해결

Problem Solving in ML   본 글은 머신러닝을 활용해 문제 해결을 하는 일반적인 순서에 대해 설명한다. 지난 글에서 다룬 선형회귀 기법은 '모델의 설계 및 학습' 과정에 해당한다. 머신러닝을 활용해 문제 해결하는 순서는 데이터 준비, 모델 학습(fitting), 모델 평가의 순서로 구성된다.   데이터 준비 : 데이터 구성(입력 X와 출력 Y), 데이터 전처리(결측치 처리, 정규화 등), 데이터 분할로 구성모델의 설계 : 데이터에 적합한 여러 모델 선정, 각 모델의 파라미터 조절, 설계 등모델 학습 : 학습 알고리즘(ex. Gradient Descent)을 선정하여 모델을 학습모델의 평가 : 성능 평가(Confusion Matrix, AUC-ROC Curve, F1 Score 등)    ..

카테고리 없음 2025.01.08 0

[Machine Learning] 2. Linear Regression(선형 회귀)

회귀와 분류   머신러닝의 분류 체계는 지도학습(supervised learning), 비지도학습(unsupervised learning), 강화학습(reinforcement learning)으로 구분된다. 특히 지도학습은 정답(레이블, target variable)이 존재하는 데이터에서의 머신러닝이다.지도학습은 회귀(regression)와 분류(classification)으로 구분되는데, 회귀는 label이 numerical value(정량적인 숫자)이고 분류는 label이 categorical value(비정형적인 클래스)이다.   지도학습설명예시회귀(Regression)예측하고자 하는 값이 실수인 경우공부 시간에 따른 수학 시험 성적(실수) 예측분류(Classification)예측하고자 하는 값이 ..

머신러닝 2025.01.04 0

[Machine Learning] 1. 데이터의 분석 : 데이터 전처리

데이터(Data)  데이터는 현대 사회에서 가장 중요한 자원 중 하나로 자리잡고 있다. 예를 들어 기업은 데이터에 기반한 의사결정을 통해 회사 고유의 경쟁력을 강화하고, 연구자들은 데이터 분석을 통해 새로운 인사이트를 얻으며, 데이터 분석의 보편화로 개인들도 데이터 기반 도구를 활용해 일상생활 속 여러 문제를 개선하고 있다. 하지만 데이터는 그 자체로서의 가치를 가지기 보다, 올바르게 가공되거나 정제될 때 그 가치가 드러난다.   데이터는 일상 혹은 연구 상황 등에서 마주할 수 있는 관찰 가능한 모든 정량적, 비정량적 수치를 포함한다. 좁은 의미로는 병원에서의 환자 건강 수치나 CT 이미지 데이터 등이 데이터가 될 수 있으며, 광범위하게는 여러 통계 자료를 포함하기도 한다. 본 글에서 초점을 맞추는 부분..

머신러닝 2025.01.04 0

[Machine Learning] 0. 머신러닝이란?

Machine Learning 기계와 공학의 발전은 다양한 산업 분야에서 혁신적인 변화를 가져왔으며, 특히 자동화의 도입은 생산성과 효율성을 크게 향상시켰다. 과거에는 주로 물리적인 작업의 기계화가 중심이었지만, 오늘날 인간의 의사결정과 문제 해결 능력을 보조하거나 대체할 기술이 중요해지고 있다. 이와 같은 요구에 부응하여 등장한 것이 바로 머신러닝(Machine Learning)이다. 머신러닝은 데이터를 활용하여 패턴을 학습하고, 이를 바탕으로 미래를 예측하거나 복잡한 문제를 해결할 수 있는 기술이다. 이는 단순한 자동화를 넘어, 스스로 학습하고 진화할 수 있는 시스템을 가능하게 하며, 현대 사회의 다양한 문제를 해결하는 데 핵심적인 역할을 하고 있다.   머신러닝(Machine Learning)은 기..

머신러닝 2025.01.03 3

[일상] 2024년을 마무리하며 (공대와 약대)

굉장히 오랜만에 블로그 글을 쓰는 것 같습니다. 지금까지 항상 알고리즘 문제 풀이 관련 글만 올리다가 처음으로 일상과관련된 글을 써보는데, 어색하지만 제 생각을 정리하고 싶어 쓰게 되었습니다. 또한 제가 올해 가졌던 고민들과 그에 대한 제 생각을 통해 누군가(어쩌면 수험생들...?)가 도움을 얻을지도 몰라, 그들에게 해주고 싶은 말들을 전하고자 합니다.     제게 2024년 한 해는 뭐라고 정의하기 굉장히 어려운 한 해인 것 같습니다. "후회없이 잘 살았는가?"라는 질문에 답하라고 한다면 망설여지기도 할 것이며 개인적으로 만족한 것도, 아쉬운 것도 많이 남는 한 해인 것 같습니다.  우선 제 소개를 해보자면 저는 과학고를 조기졸업하고 2024년 KAIST에 진학하여 새내기과정학부를 마친 학생입니다.작년..

일상 2025.01.01 4

컨벡스 헐(Convex Hull) 알고리즘

Convex Hull  본 글은 좌표 평면에서 모든 점을 포함하는 볼록 다각형인 'Convex Hull'을 구하는 알고리즘에 대해 다룬다. 2차원 좌표 평면에 여러 점이 존재하는 상황을 생각해보자. 이러한 점들을 다루는 2차원 평면은 너무 넓다. 다시 말해서, 탐색 범위나 관심을 가지는 구간을 2차원 평면 전체로 잡고 탐색을 진행하는 것은 너무 비효율적이며, 관심 있는 특정 구간을 설정하는 과정이 필요하다는 것이다. Convex Hull은 2차원 좌표 평면을 점들이 포함되는 영역과 포함되지 않는 영역으로 나누는 도형이다. 즉, Convex Hull 안에는 점들이 모두 포함되지만, 밖의 영역에는 점들이 존재하지 않는 것이다.     Convex Hull은 2차원 좌표 평면에 존재하는 여러 점들 중 일부를 ..

Algorithm 2021.03.27 0

최단 경로 알고리즘(다익스트라, 플로이드 알고리즘)

최단 경로 알고리즘 가중치 그래프에서 정점 간의 최단 경로를 구해야 하는 문제들은 많이 있다. 최단 경로란, 정점 $u$에서 $v$까지 가는데 거치는 간선의 가중치들의 총합을 말한다. 일상생활에서 최단 경로 알고리즘이 사용되는 예시로는 내비게이션(길찾기) 알고리즘이 있다. 최단 경로를 구하는 문제는 어떤 정점 $v$에서 다른 정점 $u$까지 가는 최단 경로를 구하거나, 어떤 정점 $u$에서 다른 모든 정점들까지 가는 최단 경로를 구하는 등 다양하게 사용된다. 다익스트라나 플로이드 알고리즘을 이용해 최단 경로를 구할 때에는 간선의 가중치가 모두 양수여야한다. 그 이유는 음수 간선에 의해 최단 경로가 계속 갱신되어 무한 루프에 빠질 수 있기 때문이다. 이에 대해서는 벨만포드 알고리즘의 글에서 자세하게 다룰 ..

Algorithm 2021.05.02 0

[일상] 2024년을 마무리하며 (공대와 약대)

굉장히 오랜만에 블로그 글을 쓰는 것 같습니다. 지금까지 항상 알고리즘 문제 풀이 관련 글만 올리다가 처음으로 일상과관련된 글을 써보는데, 어색하지만 제 생각을 정리하고 싶어 쓰게 되었습니다. 또한 제가 올해 가졌던 고민들과 그에 대한 제 생각을 통해 누군가(어쩌면 수험생들...?)가 도움을 얻을지도 몰라, 그들에게 해주고 싶은 말들을 전하고자 합니다.     제게 2024년 한 해는 뭐라고 정의하기 굉장히 어려운 한 해인 것 같습니다. "후회없이 잘 살았는가?"라는 질문에 답하라고 한다면 망설여지기도 할 것이며 개인적으로 만족한 것도, 아쉬운 것도 많이 남는 한 해인 것 같습니다.  우선 제 소개를 해보자면 저는 과학고를 조기졸업하고 2024년 KAIST에 진학하여 새내기과정학부를 마친 학생입니다.작년..

일상 2025.01.01 4

[ Query ] Sqrt Decomposition (제곱근 분할법)

Sqrt Decomposition  구간 쿼리를 Segment Tree를 이용해서 처리하면 시간복잡도가 $O(logN)$이다. 이는 트리의 깊이에 비례하는데, 각 노드의 자식 노드의 수를 밑으로 가지는 로그의 시간복잡도를 가지는 것이다. 예를 들어 세그먼트 트리는 자식 노드가 2개이므로 엄밀한 시간복잡도 식은 $f(x) = log_{2}(x)$이다. 그렇다면 다음과 같이 생각할 수 있다.   "만약 세그먼트 트리의 자식 노드의 개수가 3개라면 시간복잡도는 어떻게 될까?    그러면 트리의 높이가 log_3(N)이므로 시간복잡도 식도 이와 같을 것이다. 그러면 공간복잡도를 배제하고 생각해보자. 시간복잡도를 최적화하려면 트리에서 자식 노드의 개수가 많을수록 유리할 것이다.하지만 우리는 마냥 공간복잡도를 배제..

Algorithm 2021.02.25 2

[ Query ] 오일러 경로 테크닉 (Euler Tour Technique)

Euler Tour Technique  Segment Tree를 이용한 쿼리 처리는 일반적으로 Array에서 이루어졌다. Array에서 구간 쿼리를 효율적으로 처리할 수 있었던 이유는, 처리하고자 하는 구간의 원소들이 인접하게, 연속하게 존재했기 때문이다. 이러한 연속성을 이용하여 특정 구간에 대한 쿼리를 Segment Tree로 $O(logN)$에 처리할 수 있었던 것이다. 그렇다면 Graph에서의 쿼리 처리에 대해 고민해보자. Update Query는 아마도 간선 가중치 업데이트가 될 것이고, 구간합 쿼리는 경로의 길이를 구하는 쿼리가 될 것이라고 예상할 수 있다. 하지만 Array와 달리 Graph는 연속성이 정해져 있지 않다. 즉, 그래프의 형태에 따라 업데이트 하고자 하는 구간이 연속적일수도 있..

Algorithm 2021.02.18 2