[AI] 데이터 전처리
1. 개념데이터 분석, 머신러닝(딥러닝)을 수행하기 전에 데이터를 가공, 변경, 정체하는 일련의 과정ML 모델에 적용하려면 데이터셋은 다음 조건을 갖춰야 함결측치(NULL) 값이 허용되지 않음문자열도 허용되지 않음2. 유형결측치 처리결측된 데이터가 너무 많은 경우 -> 열 전체를 삭제결측된 데이터가 일부인 경우 -> 다른 값(평균값, 최빈값 등)으로 대체데이터 인코딩(Label Encoding, One-hot Encoding)문자열은 변환이 필요Label Encoding : 범주형 데이터를 숫자로 일대일 매핑(ex. 조류: 1, 포유류: 2)One-hot Encoding : 피처 값의 유형에 따라 새로운 피처를 추가해 고유 값에 해당하는 칼럼에만 1을 표시하고 나머지 칼럼에는 0을 표시하는 방법스케일링(..
2024.12.28
[AI] 회귀분석
1. 개념입력변수(독립 변수)에 기초하여 출력변수(종속 변수)을 설명하거나 예측하는 통계적 모델오차를 최소화 할 수 있는 기울기와 절편을 계산하는 과정회귀분석은 입력변수와 출력변수에 선형적 관계가 존재해야 예측 성능이 좋음2. 유형단순 선형회귀(Simple Regression) : 입력변수가 1개다중 선형회귀 : 입력변수가 k개다항선형회구 : 입력변수와 출력변수와의 관계가 1차 함수 이상인 관계로지스틱 회귀(Logistic Regression) : 회귀식을 이용한 분류모델(이진분류)페널티(정규화, Regulization) 기법을 사용한 회귀분석오버피팅을 막기 위한 방법Redgie, Lasso, elasticNet 등비선형 회귀 : 입력과 출력이 비선형 관계3. 모델 이해3.1 기본 표현식y = b + W..
2024.12.28
[Coding Test] 소수 구하기
에라토스테네스의 체 원리구하고자 하는 소수의 범위만큼 1차원 배열 생성2부터 시작하고 현재 숫자가 지워진 상태가 아닌 경우 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하면서 삭제, 이때 처음으로 선택된 숫자는 삭제하지 않음배열의 끝까지 반복한 후 배열에 남은 수를 출력N의 제곱근까지만 탐색하면 for문을 생략하게 만들어 시간 복잡도는 O(Nlog(logN))primes = [True] * 1000001primes[0] = Falseprimes[1] = Falsefor i in range(2, int(math.sqrt(1000001)) + 1): if primes[i] == False: continue for j in range(i * 2, 1000001, i): ..
2024.09.01
[Coding Test] 최대공약수 & 최소공배수 구하기
def get_gcd(a, b): # 최대공약수(유클리드 호제법) if a
2024.09.01
no image
[C++] 클래스
객체, 클래스, 인스턴스객체 : 변수들과 그와 관련된 메서드들이 모인 하나의 집합체클래스 : C의 구조체에서 확정된 변수, 객체, 함수를 포함한 하나의 틀인스턴스 : 클래스를 기반으로 한 변수접근 제어 지시자public : 외부 접근 허용protected : 외부 접근 차단, 파생 클래스에서의 접근 허용private : 외부 접근 차단(default)기본 문법class CTest{public: int m_nData; void Func(void) { }};생성자와 소멸자반환 자료형이 없음호출는 함수가 아니라 적절한 시기에 내부에서 자동으로 호출되는 함수생략할 수 있으나 생략할 경우 컴파일러가 만들어 넣음생성자는 다중 정의가 가능하나 소멸자는 불가능소멸자는 앞에 ~가 붙음생성자 멤버변수..
2024.06.25
no image
[AI] 인공지능 기본
머신러닝이란인공지능 : 지능적인 기계 / 프로그램의 제작과 관련된 분야, 인터넷과 GPU의 발전으로 주목받기 시작머신러닝 : 주어진 데이터를 분석하여 별도의 명시적인 프로그래밍 없이 규칙이나 지식을 스스로 추출하는 방법을 개발하는 연구 분야딥러닝 : 심층 신경망에 기반한 학습 방법※ 심층 신경망 : 인간의 뇌 세포 상호작용(다수의 이전 뉴런으로부터 입력을 받아 합을 구하고 임계치를 넘으면 다음 뉴런에 전달)을 모방처리 과정1. 학습 과정 : 입출력의 관계를 알려주는 모델을 찾는 과정2. 추론 과정 : 실제 데이터에 모델을 적용해 결과를 얻는 과정시스템 개발 과정1. 문제 파악2. 데이터(학습 데이터 및 테스트 데이터) 수집 및 이해3. 전처리 : 입력 데이터에 대해 중복 및 불필요 데이터를 제거4. 특징..
2024.06.05
no image
[C++] 스마트 포인터
동적 할당된 인스턴스를 자동으로 삭제해주는 편리한 포인터auto_ptr동적 할당된 인스턴스를 자동으로 삭제편리하지만 모든 메모리 관리 문제를 해결하지 못할 수 있음int main() { { // 속한 범위를 벗어나면 자동 소멸 auto_ptr ptrTest(new CMyData); } return 0;}shared_ptr포인팅 횟수를 계수해서 0이 되면 삭제필요에 따라 삭제하는 로직을 추가int main() { shared_ptr ptr1(new CMyData); { shared_ptr ptr2(ptr1); } return 0;}unique_ptr한 대상을 오로지 한 포인터로만 포인팅얕은 복사를 문법으로 차단weak_ptr
2024.06.04
no image
[C++] 템플릿
함수 템플릿함수를 찍어내는 모양자templateT add(T a, T b) { return a + b; }클래스 템플릿클래스를 찍어내는 모양자템플릿으로 만들어진 클래스를 템플릿 클래스라고 함자료형이 달라서 다중정의 하게 되는 경우에 사용// T는 자료형이 됨templateclass CTest {public: CTest() {} ~CTest() {}private: T m_nData;};int main() { CTest a; return 0;}템플릿 특수화특수 경우에 예외적으로 처리하기 위함 ex) 합산에서 자료형이 int, double이 아닌 char*인 경우typename을 기술하지 않음templateT add(T a, T b) { return a + b; }templatech..
2024.06.04
no image
[C++] 관계
수평클래스들간의 관계에서 하나의 클래스에 대해서 일부 클래스만 접근이 가능하도록 하고 싶을 때 friend를 사용friend는 함수와 클래스에 사용 가능, 접근 제어 지시자를 무력화수직상속집합Composition - 여럿이 하나(생명주기가 같음, 멤버로 사용)Aggregation - 단순한 모임(생명주기가 다름, 참조 또는 포인터로 사용)
2024.06.04