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

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

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

진짜 제 돈 주고 참여했습니다. 비싼 돈 그거 다 주고 수강했습니다. 회사에서 알면 이직준비 한다고 오해할까봐...ㅠㅠ후기 내용에 솔직한 생각을 꾹꾹 담았습니다. 저는현재 금융권에서 백엔드 개발자로 근무중입니다. 제 블로그에도 나와 있듯, 학부생 시절에는 멋쟁이사자처럼 이라는 개발 동아리에서 개발을 시작한 비전공자이고, 싸피를 거치며 하루하루 나아간 결과 현재는 행복하게 개발하고 있습니다.그런데 문득제가 소속한 팀이 사내 AI 연구팀과 직접적으로 협업을 하는 팀이다보니, AI에 대한 이해가 부족하다 보니 업무 도메인을 깊이 이해하지 못한다는 느낌을 지속적으로 받게 되었습니다. 로직을 구성하거나 파이프라인을 구성할 때 코어 라이브러리에 대한 이해가 없는 것과 같으니, 업무를 온전히 이해할 수 없다는 건 어..

상황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..

싸피 생활 및 취준으로 바빠서 밀려도 한참 밀려버린 싸피 생활에 대한 이야기와 끝내 취업에 성공한 내용을 담고 있는 글입니다. 알고리즘 고수가 되고 싶었어요... 결국 그러지 못했지만싸피에서 얻고자 했던 1번 목표는 알고리즘 실력 향상이었다. 따라서 1학기에는 알고리즘에 좀 더 집중하는 모습을 보였다. 싸피를 시작했던 1월 2일부터 지금까지 계속 지켰던 습관 중 하나는 "1시간 일찍 하루 시작하기" 였다. 늦어도 8시에는 앉아서 공부를 시작했다. 보통은 코테를 풀었다. 물론 늦잠잔 날도 있다. 근데, 아침에 일어나서 "오늘만 쉬자" 한 날은 없다. 술을 먹은 다음날도 예외 없이 일찍 일어나서 공부했다. 실력이 없으니 노력이라도 더 하자는 거였는데, 끝날 때쯤 되니 그래도 스스로가 조금은 기특해서 자랑하고..
🤔 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으로 구하면 시간이 터지므로 효율적으로 뽑아야 한다는 거다. 즉, 순열을 다 뽑아놓고 그것에 대하여 숫자를 계산하는 게 아니라, 각 숫자를 뽑으면서 그 때마다 시뮬레이션을 수행..