본문 바로가기 메뉴 바로가기

Daniel's blog

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

Daniel's blog

검색하기 폼
  • 분류 전체보기 (366)
    • 경제(Economy) (15)
      • The Economist Espresso (10)
    • 기술(Tech, IT) (333)
      • 깃(Git) (1)
      • 네트워크 (Networking) (19)
      • 데이터베이스(Database) (9)
      • 리트코드(LeetCode) (38)
      • 머신 러닝(Machine Learning) (43)
      • 소프트웨어 품질 (Software Quality .. (2)
      • 안드로이드(Android) (15)
      • 알고리즘(Algorithm) (14)
      • 웹(Web) (4)
      • 인터뷰 (Interview) (3)
      • 임베디드 (Embedded) (42)
      • 자바(Java) (17)
      • 컴퓨터 그래픽스 (Computer Graphics.. (24)
      • 컴퓨터 비전 (Computer Vision) (5)
      • 파이썬(Python) (25)
      • C++ (23)
      • etc. (47)
    • 바이오(Biology) (1)
    • 서평(Book Review) (2)
    • 영어(English) (5)
    • 상식 및 기타(Common Sense and et.. (9)
  • 방명록

2023/10 (33)
[ML] Multinomial Naive Bayes (다항 분포 나이브 베이즈) - 2

Multinomial Naive Bayes에 대해 다시 한 번 간단히 짚어보고, 예시를 살펴보자. Multinomial Naive Bayes는 불연속 데이터에 적합한 Naive Bayes classifier의 변형으로, 텍스트 분류의 맥락에서 단어 수 또는 TF-IDF score 같은 기능과 함께 자주 사용된다. 문제 : 영화 리뷰를 "Positive"와 "Negative"로 분류 Training Data : "I love this movie. It's amazing!" - Positive "A wonderful film with great characters" - Positive "I really disliked this move." - Nagative "Such a waste of time." - N..

기술(Tech, IT)/머신 러닝(Machine Learning) 2023. 10. 31. 06:26
[ML] Vecotrizer (벡터화 기법)

NLP에서 단어, 구문 또는 전체 문서를 벡터로 변화하는 대표적인 기술로 Count Vectorizer, TF-IDF, Word2Vec, GloVe가 있다. 각각에 대해 알아보자. Count Vectorizer (카운트 벡터라이저) 설명 : 텍스트 데이터를 표현하는 방법으로, 각 문서 (또는 텍스트 세그먼트)에 대해 각 단어의 발생 횟수를 계산해 각 요소가 어휘의 단어에 해당하는 벡터로 문서를 표현한다. 벡터의 길이는 어휘의 크기이며, 각 요소의 값은 문서에서 해당 단어의 개수다. 사용 사례 : 텍스트 분류, 클러스터링 등을 위한 고전적인 머신 러닝 모델에서 주로 사용된다. 특징 : 단어 간의 의미론적 의미나 관계를 포착하지 않고, 의미는 비슷하지만 형태가 다른 단어(예: run과 running)는 별개..

기술(Tech, IT)/머신 러닝(Machine Learning) 2023. 10. 30. 08:00
[ML] Naive Bayes

Naive Bayes는 분류(classification) 작업에 특히 적합한 확률론적 머신 러닝 classfier로, 스팸 이메일 탐지, 감성 분석, 텍스트 분류와 같은 NLP (Natural Language Processing, 자연어 처리) 작업에 자주 적용된다. Naive Bayes의 기본 아이디어는 event와 관련이 있을 수 있는 조건에 대한 사전 지식을 바탕으로 event의 확률을 설명하는 Bayes' theorem (베이즈 정리)에 뿌리를 두고 있다. NLP에서 'event'는 종종 텍스트의 범주 또는 클래스 (class) (예를 들어, '스팸' 또는 '스팸 아님')을 의미하며, '조건 (condition)'은 텍스트에 특정 단어가 있는지 또는 없는지를 의미한다. Bayes' theorem은..

기술(Tech, IT)/머신 러닝(Machine Learning) 2023. 10. 29. 05:32
[ML] TF-IDF - 2

앞선 포스팅(https://danielcs.tistory.com/184)에서 살펴봤듯이 TF-IDF는 컬렉션 또는 말뭉치(corpus)에서 단어가 문서에 얼마나 중요한지를 반영하는 데 사용되는 수치 통계다. 정보 검색 및 텍스트 마이닝에서 가장 널리 사용되는 용어 가중치 체계 중 하나다. 기본 개념은 모든 문서에서의 빈도와 빈교해 특정 문서에서 얼마나 자주 사용되는지에 따라 용어에 가중치를 부여하는 것이다. 이는 특정 문서에 더 고유한 단어를 강조하는 데 도움이 된다. 계산하는 방법을 간단하게 살펴보고, 예시를 통해 이해해보자. TF (Term Frequency): 한 문서에 한 단어가 얼마나 자주 등장하는지를 측정 : TF (t, d) = 문서 d에 용어 t의 등장하는 횟수 / 문서 d의 모든 단어의 ..

기술(Tech, IT)/머신 러닝(Machine Learning) 2023. 10. 28. 05:47
[C++] Pointer (포인터)

포인터는 C와 C++를 비롯해 많은 프로그래밍 언어에서의 기본 개념으로, 메모리 주소에 직접 접근을 제공해 동적 메모리 관리르 가능하게 하며 기타 기능을 제공한다. 그러나 이러한 기능에는 잠재적인 함정이 있다. 포인터 사용의 장점과 단점을 알아보자. 1. 장점 동적 메모리 할당 : (malloc(), calloc(), new 등) 동적 메모리 할당이 가능하며, 이는 애플리케이션의 필요에 따라 런타임 중에 메모리를 할당할 수 있음을 의미한다. 이건은 linked list, tree, graph와 같은 많은 데이터 구조에 필수적이다. 효율성 - 추가로 다룰 예정 : 프로그램의 실행이 더 효율적으로 될 수 있다. 메모리에 직접 접근하면 (데이터를 복사하는 대신) 특정 작업을 더 빠르게 수행할 수 있다. 유연성..

기술(Tech, IT)/C++ 2023. 10. 27. 11:16
[C++] Overriding (오버라이딩)

C++은 Overloading과 함께 Overriding도 제공한다. overriding은 파생된 클래스에서 기존 클래스의 멤버 함수를 새로운 정의로 재정의하는 것을 말한다. overriding은 주로 inheritance(상속)과 polymorphism(다형성)을 구현할 때 사용된다. 기본 클래스의 함수를 override하려면, 해당 함수는 반드시 'virtual'로 선언돼야 하고, private 멤버 함수는 직접적으로 접근이 불가하다(간접적으로는 reference(참조)를 통해 override 가능). class Animal { public: virtual void sound() { std::cout

기술(Tech, IT)/C++ 2023. 10. 26. 10:48
[C++] Overloading (오버로딩)

Java와 마찬가지로 C++역시 overloading을 제공한다. overloading은 같은 이름의 함수나 연산자를 여러 번 정의하지만, 매개변수의 유형이나 개수가 달라야 한다. 이를 통해 동일한 함수 이름을 사용해 다양한 데이터 유형에 대한 다양한 작업을 수행할 수 있다. 아래 예시를 살펴보자. 같은 'add'라는 이름을 갖지만 위에는 int에 대한 연산을, 아래는 double에 대한 연산을 수행한다. int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; }

기술(Tech, IT)/C++ 2023. 10. 25. 10:40
[Algorithm] Stack vs Heap (스택 vs 힙)

1. Stack 정의 : stack은 로컬 변수, 함수 매개변수, 반환 주소를 저장하는 메모리 영역으로, 함수 호출 관리를 수행한다. 관리 : stack은 시스템에 의해 자동으로 관리된다. 함수가 호출되면 해당 함수의 로컬 변수, 반환 주소 및 일부 관리 정보가 stack에 push된다. 함수가 반환되면 해당 정보가 stack에서 pop된다. LIFO 구조 : stack은 Last-In-First-Out (LIFO) 방식으로 작동한다. 이는 stack에 마지막으로 push 된 변수가 제일 먼저 제거된다는 의미다. 크기 : stack에는 프로그램 시작 시 설정된 제한된 크기가 있다. 사용 가능한 스택 공가보다 더 많은 공간을 사용하면 (예를 들어, 무한 재귀로 인한) stack overflow가 발생하며 ..

기술(Tech, IT)/알고리즘(Algorithm) 2023. 10. 25. 10:35
[C++] Pointer와 Reference (포인터와 참조)

Pointer (포인터)는 다른 변수의 메모리 주소를 보유하는 변수로 * 기호를 사용해 선언한다. // 선언 int *p; // int에 대한 포인터 p // 초기화 및 역참조 int x = 10; *p = &x; // p가 x의 주소를 보유 int value = *p; // value 변수는 *p를 역참조해 이제 10 이라는 값을 보유 // 재할당 int y = 20; p = &y; // p는 이제 y를 가리킴 // Null 포인터 int *q = nullptr; Reference (참조)는 이미 존재하는 변수에 대한 별칭(alias) 또는 다른 이름이다. 포인터처럼 별도의 메모리 주소는 없지만, 참조하는 변수의 주소를 공유한다. &를 사용해 선언하지만 포인터와는 다른 의미를 갖는다. // 선언 int..

기술(Tech, IT)/C++ 2023. 10. 24. 10:19
[ML] Viterbi Algorithm (비터비 알고리즘)

Viterbi Algorithm은 특히 Markov information sources (마르코프 정보 소스) 및 Hidden Markov Model (HMM, 은닉 마르코프 모델)의 맥락에서 관찰된 사건의 연속으로 나타나는 가장 가능성이 높은 숨겨진 상태의 연속성 - Viterbi path 라고도 함 - 을 찾는 데 사용되는동적 프로그래밍 (Dynamic programming) 알고리즘이다. 이 알고리즘은 Andrew Vitervi가 통신에 사용되는 Convolutional Codes (컨볼루션 코드, 합성 부호) 를 디코딩하기 위한 방법으로 도입했다. 이후 sequence alignment (서열 정렬)을 위한 Bioinformatics (생물정보학), 음성 인식 등 다양한 분야에 적용됐다. 아래는 ..

기술(Tech, IT)/머신 러닝(Machine Learning) 2023. 10. 23. 09:04
이전 1 2 3 4 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 리트코드
  • 안드로이드
  • Hash Map
  • 투 포인터
  • min heap
  • 소켓 프로그래밍
  • 이코노미스트 에스프레소
  • 오블완
  • java
  • C++
  • 이코노미스트
  • join
  • 티스토리챌린지
  • Android
  • 머신 러닝
  • ml
  • 파이썬
  • leetcode
  • I2C
  • The Economist
  • defaultdict
  • 딕셔너리
  • vertex shader
  • socket programming
  • DICTIONARY
  • tf-idf
  • The Economist Espresso
  • Python
  • Computer Graphics
  • machine learning
more
«   2023/10   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
반응형

Blog is powered by Tistory / Designed by Tistory

티스토리툴바