Computer Science(13)
-
ML에서 특성 스케일 맞추기
Decision Tree나 Random Forest가 아닌 이상, 스케일링은 아주 중요한 작업입니다. 대부분의 ML과 최적화 알고리즘은 특성의 스케일이 비스므리 할때 훨씬 성능이 좋기 때문입니다. 뭔소리냐면, 한 속성은 char타입이고 다른 얘가 int타입이라 치면 range 범위 차이가 장난 아니게 납니다. 그걸 그대로 MSE에 가져다 박는다 치면 알고리즘은 두번째 특성의 영향을 정말로 무지막지하게 받게 될 것입니다. 해서 스케일이 다른 특성을 맞추는 방법으로는 대표적으로 Normalization과 Standardization이 있습니다. 먼저 대부분 정규화의 경우는 특성의 스케일을 [0, 1] 범위에 맞추는 것을 말하는데 - 그냥 min-max Scaling을 생각하면 편합니다. 이 친구는 정해..
2025.12.26 -
ML에서 누락된 데이터를 다루기
실제 데이터를 만지다 보면, 뜬금 없는 이유로 샘플에 값이 텅텅 비어 있는 경우가 있습니다. 아니면 인풋으로 1000Row를 고정해 놨는데, 정작 찍힌건 973개 밖에 없다거나 하는 식으로요...(하필 시계열 데이터여서 이걸 어떻게 해야되나 심각하게 고민했었던 기억이 있네요.) 해서 빌어먹을 누락 데이터를 어떻게 다뤄야 할지 논의좀 해보겠습니다. 일반적으로 누락된 값은 NaN(Not a Number)나 NULL과 같은 값을 사용합니다. 물론 샘플에 이게 박혀 있으면 끔찍하기 따로 없죠. 그래서 방법은 여러가지가 있는데, 일단 무식하게 1. 누락값 샘플 숙청누락 데이터를 다루는 가장 쉬운 방법입니다. df.dropna와 같은 메서드를 사용하여 쉽게 누락값이 있는 행/열(axix=0/1)을 숙청할 수 있습니..
2025.12.25 -
맥컬록-피츠 뉴런/퍼셉트론
AI를 설계하기 위해서 생물학적 모티브를 따와, 맥컬록과 피츠는 간소화된 뉴런의 개념을 발표했다. 이를 맥컬록-피츠 뉴런(MCP)이라고 하며, 추후 얘기하게 될 퍼셉트론이라는 개념의 모티브가 된다. 쨋든 이양반들은 뉴런을 아주 단순하게 생각해서 아래와 같은 간단한 무엇인가를 내놓게 된다. 신경세포는 Na+ K+채널을 써서 재분극이니 탈분극이니 하는 복잡한 과정이 필요한데, 다 던지고 이진 출력을 내는 간단한 논리회로로 표현해 보자.그리고 이게 발전된게 로젠블라트의 퍼셉트론이다. 이걸 좀 형식적으로 얘기하자면, 이전 신경세포에서의 가중치를 w라 치고 입력을 x라 치면 현재 신경세포에서의 출력은 가 될 것이다. 물론 현행 신경 세포도 역치값을 넘겨야지 신호를 전달하게 끔 해야 하므로, 아래와 같은 결정함..
2025.12.18 -
Python 3.10 ~ 3.14 특이점 정리
Python 3.10Context Manager에서 괄호 쓰는게 가능해졌습니다. 대충 With (A as one, B as two..) 와 같은게 가능해졌다는 소리입니다.SynthaxError가 읽기 쉬워졌습니다! 예전에는 괄호 안닫으면 제대로 표시가 안 됬는데, 이제는 가능합니다!그 외에도 IndentationErrors, AttributeErrors가 혁명적으로 개선되었습니다.match-case와 같은 구조적 패턴 문법이 등장했습니다!! 이제 빌어 쳐먹을 elif를 도배하지 않아도 됩니다. 또한 |을 사용하여 파이프라이닝 마냥 결합할수도 있습니다.def http_error(status): match status: case 400: return "Bad reques..
2025.12.15 -
망할놈의 알고리즘 - DP편(1) : 메모이제이션과 타뷸레이션
Ref : Introduction to ALGORITHMS, Third Edition, Thomas H. CormenRef : C++ DS and ALgoriithm Design Principles, Jon carry.※ 해당 게시글을 이해하기 위해서는 자료구조에 대한 기초적인 지식과 적당한 Python/CPP 능력이 필요합니다.쨋든 DP의 기법들인 Memoization/Tabulation을 알아봅시다. (참고로 Memorization이랑 헷갈리시면 곤란합니다.) 메모이제이션은 대게 하향식 방식에서 부분문제의 답을 캐시에 넣어 사용할때를 말합니다. 대게 재귀를 쓰고, 필요한 값만 요청될 때 계산합니다. 또한 다음 조건을 만족할때 성립하게 됩니다.부분 문제 해법을 캐시에 인덱싱하여 저장하는 방법이 유용해야..
2025.12.14 -
망할놈의 알고리즘 - DP편(0) : 개요
Ref : Introduction to ALGORITHMS, Third Edition, Thomas H. Cormen※ 해당 게시글을 이해하기 위해서는 자료구조에 대한 기초적인 지식과 적당한 Python/CPP 능력이 필요합니다.Dynamic Programming(이하 통칭 DP라 함)은 분할 정복 마냥 문제를 나눠서 푸는게 핵심입니다. 단지 분할 정복이랑 다른 점이 있다면 - 나눈 문제들이 답을 서로 공유한다는 점이죠. 그러니까 대충 정리하자면.... DP는 Sub-Problem을 한번 풀과 결과를 데이터 테이블에 저장해 놓습니다.결과적으로 해당 Sub-Problem을 다시 만났을 때 - 계산을 다시 할 필요가 없어집니다.call fib(6) └─ fib(5) └─ fib(4) ..
2025.12.13