목록workspace (274)
HwangHub
데이터 스케일링은 머신러닝 모델의 성능을 최적화하기 위한 중요한 전처리 단계입니다. 서로 다른 범위를 가진 특성들이 모델에 미치는 영향을 균등하게 만들어 더 나은 결과를 얻을 수 있습니다. 이 포스트에서는 데이터 스케일링의 중요성, 주요 기법, 그리고 파이썬을 이용한 구현 방법에 대해 알아보겠습니다.Data Scaling이란?데이터 스케일링은 데이터셋의 특성(feature)들을 특정 범위로 변환하는 과정입니다. 간단히 말해, 서로 다른 단위와 범위를 가진 특성들을 비슷한 스케일로 조정하여 데이터 포인트 간의 거리를 줄이는 작업입니다.왜 하는가?스케일링을 거친 데이터를 기반으로 학습을 하면 머신러닝/딥러닝 알고리즘의 성능이 향상되니 사용합니다. 자 그러면, 왜 성능이 향상되는지를 고민해봐야 합니다.사실 이..

TL;DR샘플링 보다는 클래스 가중치로 불균형을 해소하는 것이 '일반적으로' 더 강력하다. 하지만 은탄환은 없으니 파이프라인을 구축하여 스코어를 비교해보는 것은 언제나 가치있는 일이다. 머신 러닝 모델을 만들 때 학습에 사용되는 데이터셋의 품질에 따라 성능이 크게 좌우된다는 것은 자명하다. 그렇다면 데이터의 분포가 불균형하다면 이를 어떻게 처리할 수 있을까. 해당 포스트에서는 SMOTE-Tomek 등의 샘플링 기법을 활용한 불균형 데이터에 대한 전처리 방법과 그 실효성에 대하여 탐구해본다. 데이터 샘플링데이터 샘플링은 raw data로부터 sample data를 추출하는 기법을 말한다. 직관적으로 보통의 경우 '샘플링'이라는 단어를 마주하면 자연스럽게 전체 데이터 중 일부 데이터를 추출하여 샘플로 쓰는 ..

지금까지의 프로그램은 개발자가 로직을 직접 구성하는 방식으로 만들어져 왔다. 하지만 머신러닝 또는 딥러닝으로 대표되는 인공지능 모델은 입력과 출력이라는 데이터를 바탕으로 추론 로직이 완성되는 형태이다. 즉, 코드 뿐만 아니라 학습에 사용되는 데이터 또한 로직을 구성하는 데에 큰 영향을 끼친다는 것이다. 기존의 프로그램은 개발자가 구성하는 로직이 그대로 규칙이 되는 반면, ML / DL 모델은 데이터가 그 규칙을 결정하는 데에 "매우 크게" 관여한다는 것이 포인트이다. 이에 따라 세간에서는 모델을 개발할 때 "Garbage in, Garbage out" 이라는 말을 많이 한다. 이 대목에서 생각해봐야 할 포인트가 있다. 만약 데이터가 편향되어 있다면 어쩌나.데이터의 편향성? 그게 문제가 될까? 된다. 위에..

상황OS: Centos 7.6.1810K8S: v1.25.1Container Runtime: Docker (Inteface: cri-docker)운영중인 솔루션이 쿠버네티스 기반으로 동작하고 있었고, 이를 파악하기 위해 솔루션 설치를 수행하던 중 문제가 발생했다.구체적으로, kubeadm init을 수행했을 때 계속 아래와 같은 메시지가 4분 동안 반복되다가 timeout이 났다.HTTP Trace: Dial to tcp:192.168.77.232:6443 failed: dial tcp 192.168.77.232:6443: connect: connection refusedGET https://192.168.77.232:6443/healthz?timeout=10s in 0 millisecondsHTTP S..
🤔 Intuition아이디어를 떠올리기 어려워 결국 다른 이의 풀이를 참고했다. 요지는, 전체 부분수열을 부분집합 알고리즘으로 탐색하게 되면 (2 ^ 40) 정도라서 시간을 초과하지만, 이를 절반씩 쪼개서 부분집합을 구하면 (2 * 2 ^ 20) 이라서 시간이 터지지 않는다. 따라서 이를 절반으로 쪼개어 부분수열의 합을 구한 뒤, 한쪽 절반의 부분수열의 합을 기준으로 다른 반쪽의 부분수열의 합과 더한 값이 S가 될 때의 개수를 세주면 된다.🔎 Algorithm & Complexity * @algorithm backtracking (powerset)* @time O(2^N/2) : 976 ms* @memory O(N) : 96908 KB 👨🏻💻 Logic오른쪽 반 쪽의 부분수열의 합을 먼저 구..
17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 🤔 Intuition 처음에는 그리디하게 풀 수 있을까 싶었지만, 예외가 있을 것으로 보였다. 그래서 주어진 조건을 보면서 백트래킹을 이용한 완탐으로 풀 수 있을 것으로 봤고, 다행히 추측이 맞았다. (근데 합리적으로 정확하게 계산을 못하겠다... 이 글을 보는 사람은 풀이의 도움을 얻으려는 사람 뿐이겠지만 누군가 백트래킹 시간복잡도 계산에 대하여 잘 안다면 좀 알려주세요....) 🔎 Algorithm & Complexity * @algorithm bac..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🤔 Intuition 완전 아이디어 싸움인 문제라고 생각한다. 내 풀이는 2초 정도 걸리는 풀이인데, 어떤 사람은 300ms에 풀었더라. 방법이 여러가지일 것 같은데, 나는 거진 완탐 방식으로 푼 셈이다. 플로이드 워셜을 이용하여 각 노드 간 연결성을 앞뒤로 체크해줬다. 유향그래프이므로, 내 노드가 모든 노드를 타고 갈 수 있는지를 판별하면 된다. 여기서 포인트는 플로이드 워셜은 아닌데, 그냥 로직 간단하게 구성하려고 플로이드 워셜 썼다. 🔎 Algorithm & Complexity * @algorithm floyd warshall * @time O(V^3) : ..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🤔 Intuition 중복 순열을 사용해서 터뜨릴 벽돌을 선택하고, 터뜨리면 되는 문제다. 시뮬레이션 유형이라고 판단했다. 🔎 Algorithm & Complexity * @algorithm simulation * @time (W^4 * W * H) -> 211 ms * @memory (W * H) -> 98,464 kb 👨🏻💻 Logic 관건은, 중복 순열을 일반적인 permutation으로 구하면 시간이 터지므로 효율적으로 뽑아야 한다는 거다. 즉, 순열을 다 뽑아놓고 그것에 대하여 숫자를 계산하는 게 아니라, 각 숫자를 뽑으면서 그 때마다 시뮬레이션을 수행..
17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 🤔 Intuition 시뮬레이션 문제인데, 1월부터 4월까지 오랜 기간에 걸쳐 총 3번의 시도 끝에 성공했다. 다시 도전해서 드디어 성공했다... 이 문제는 상어가 움직이는 걸 수식으로 구현하는 게 포인트이다. (이걸 그냥 단순 반복으로 한칸한칸 움직이게 구현하면 시간초과 발생, 근데 또 수식으로 구현하려니 머리 아픔) 옛날에는 애초에 시뮬레이션 문제를 잘 못풀었고, 2트 째에는 수식 완성을 못했다. 그리고 3트 째에 드디어 풀었다... 🔎 A..
4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 🤔 Intuition 가중치가 있는 그래프 상에서, 가중치의 합이 최소가 되는 경로를 구하는 문제이므로 전형적인 다익스트라 문제이다. 다익스트라 기본 유형 연습용 문제로 보인다. 다익스트라 구현을 할 때 인접 행렬, 인접 리스트 두 가지 버전이 있으므로 두 가지로 풀어봤다. 🔎 Algorithm & Complexity * @algorithm dijkstra * @time1 O(E * logV) ; 인접리스트+우선순위큐 -> 264 ms * @t..