프로필사진

전체 글 81

[객체 지향 프로그래밍] 캡슐화

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 캡슐화란? 객체의 일부 구현 내용에 대한 외부로부터의 직접적인 액세스를 차단하는 것 객체의 속성과 그것을 사용하는 행동을 하나로 묶는 것 1. 외부로부터의 직접적인 액세스를 차단 변수나 메소드를 초기 정의 시 __를 앞에 붙이면 클래스 밖에서 호출할 수 없음 예시는 아래와 같다. Class Citizen: """주민 클래스""" def __init__(self, name, age, resident_id): """이름, 나이, 주민등록번호""" self.name = name self.__age = age s..

[객체 지향 프로그래밍] 추상화

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 추상화란? 정의: 어떤 것을 사용할 때, 몰라도 되는 부분은 감추고, 꼭 알아야하는 부분만 드러내는 것 프그래밍에서 추상화란? : 프로그래머들이 특정 코를 사용할 때 필수적인 정보를 제외한 세부사항을 가리는 변수나 함수의 정의도 일종의 추상화라고 볼 수 있음!!

[OOP] 객체 지향 프로그래밍에 대한 기본 개념

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 객체란? : 우리가 살아가면서 보는 모든 존재로, 속성과 행동으로 구성된 존재 : 예시1) 자동차 객체의 속성은 색깔, 의자 개수, 차의 크기 등의 속성이 있으며, 행동과 행동을 가지고 있음 : 예시2) 인스타그램 유저 객체의 속성은 이메일 주소, 비밀번호, 친구 목록 등이 있으며, 행동과 행동을 가지고 있음 -> 물리적으로 존재하지 않는다 해도 속성과 행동으로 구성된 존재이므로 객체이다. 객체 지향 프로그래밍이란 객체 지향 프로그래밍의 정의 : 프로그램을 여러 개의 독립된 객체들과, 그 객체들 간의 상호..

[알고리즘 중심의 머신러닝 가이드] 13. 위원회의 결정: 앙상블 학습

이 글은 제이펍(Jpub)에서 발간된 을 공부하고 요약한 글입니다. 목차 들어가기 전에 13.1 부스팅 13.1.1 아다부스트 13.1.2 스텀핑 13.2 배깅 13.2.1 서브배깅 13.3 랜덤 포레스트 13.3.1 부스팅과 비교하기 13.4 분류기를 종합하는 다른 방법들 들어가기 전에 랜덤 포레스트에 대해 본격적으로 논하기 전, 랜덤 포레스트의 기본적인 개념인 '앙상블 학습'에 대해 다시 한번 짚고 넘어가고자 한다. 앙상블 학습의 정의와 목적에 대해 알아보도록 한다. - 앙상블 학습(ensemble learning)이란? 더 좋은 예측 성능을 얻기 위해 약학습자(weak learners) 여러 개를 조합하여 강한 학습자(strong learner)를 만드는 것이다. 정의에 따르면, 우리가 앙상블 학습..

스크래퍼 만들기 2 - Selenium으로 스크래핑(크롤링)하기

(이 글은 2019년 8월 29일에 처음 작성한 글입니다) 셀레늄은 본래 웹이 잘 작동하는 지 실험하기 위한 도구였다. 하지만 자바 스크립트를 읽기 유용하다는 점에서 스크래핑 도구로 사용될 수 있다. 하지만 엄청 느리다. 인간이 하는 행동을 그대로 자동화 시킬 수 있다는 점에서 강력하지만 우리가 무의식적으로 하는 행동 (클릭 등)을 다 일일이 설정해줘야 하기 때문에 귀찮음 꼼꼼함이 요구된다. 기본적인 동작 실행 먼저 필요한 모듈을 불러온다. from selenium import webdriver (설치가 안되어 있다면 pip install selenium) 셀레늄은 파이썬 내에서 웹을 실행시켜 그 안에서 작업을 수행할 수 있게 해주는 도구이다. 셀레늄을 사용하기 위해서는 웹 드라이버가 필요하다. 맞는 버..

IT Anthology/how-to 2021.11.24

스크래퍼 만들기 1 - BeautifulSoup으로 스크래핑(크롤링)하기

(이 글은 2019년 8월 27일 처음 작성한 글입니다) 스크래핑, 혹은 크롤링은 데이터를 모으기 위한 첫번째 방법이다. 가장 필요한만큼 많은 방법이 존재한다. 파이썬에서 스크래핑을 배우기 시작한다면, 크게 아래 세가지의 툴에 대한 얘기를 많이 듣게 될 것이다. BeautifulSoup 이용 Selenium 이용 scrapy 이용 오늘은 가장 손쉽게 가지고 놀 수 있는 BeautifulSoup에 대해 정리해보겠다. BeautifulSoup 스크래핑 기본 필요한 모듈은 다음과 같다. import requests from bs4 import BeautifulSoup 네이버 뉴스를 한번 스크래핑 해보자 검색 keyword를 NLP로 해보겠다. 검색어를 입력하고 '뉴스'탭에 들어가면 위와 같은 주소가 나온다. ..

IT Anthology/how-to 2021.11.24

깃헙(github) 블로그 개설부터 글쓰기까지 총정리

(이 글은 2019년 8월 24일에 처음 작성한 글입니다) 깃헙 블로그는 자유도가 높은만큼 핸들링하는 방법이 손쉽지는 않다. 실력에 따라 무궁무진하게 디자인할 수 있지만, 이제 막 프로그래밍을 시작한 초보 개발자에게는 진입장벽이 있는 것이다. 지금의 블로그는 여러 이유 때문에 티스토리로 옮겨왔지만, 깃헙 블로그를 처음 시작할 때 꽤나 애먹었기 때문에 글을 써서 남겨놓았다. 깃헙 블로그를 선택하는 이유는 여러가지가 있을 수 있다. 당시 깃헙 블로그를 개설했던 첫번째 이유는 간지가 나서였다. 무려 'github'이 내 블로그 주소에 박히는 거니까. 깃헙으로 블로그를 개설하면 따라오는 '.io'도 뭔가 특별해 보였다. 두번째 이유는, 정해진 틀 없이 화면을 내 마음대로 요리할 수 있다는 점이었다. 하지만 나는..

IT Anthology/how-to 2021.11.24

NER 개론과 NER 데이터셋 모음 (한국어 개체명인식 포함)

**이 글은 2023년 최신 동향에 맞게 수정되었습니다. 아래 글을 침고하시기 바랍니다!** 레터 기술 블로그 - NER의 현재와 미래 Ver.2: 한국어 NER 데이터셋 총정리 (발칙한 말투를 애써 잘 눌러주신 블로그 편집자님께 심심한 감사를 드립니다😉) **아래 글은 A Survey on Deep Learning for Named Entity Recognition 논문을 읽고 작성한 글입니다.** 목차 NER이란? NE의 태깅 시스템 NE의 카테고리와 대표적인 데이터셋 NER에 대한 전통적인 접근법 딥러닝으로 NER해야 할 3가지 이유 NER의 단계 각 모델 간의 성능 비교 1. NER이란? NER이란 NE를 인식(Recognition)하는 작업을 말한다. 그렇다면 NE란 무엇일까? NE는 Named..

Task Synopsis 2020.10.26

과적합(오버피팅, over-fitting) 해결법

목차 오버피팅이란 과적합의 원인 오버피팅으 근본적인 방지 - variance낮추기 (https://nittaku.tistory.com/289) 데이터 보강(agumentation) feature 수 줄이기 가중치 감소 드롭아웃 https://shryu8902.github.io/working/2019-02-01-overfit/ 훈련 데이터를 늘린다 피처를 정규화 / 표준화 시켜준다 피처를 선택하여 제거하거나, 페널티를 준다. 데이터의 차원을 축소한다 (CNN과 같은 커널이나 샘플링 개념이 포함된 신경망 알고리즘은 이 문제가 자동으로 해결이 된다.) 1. 오버피팅이란 오버피팅이란, 신경망이 훈련 데이터에만 지나치게 적응된 나머지, 훈련 데이터가 아닌 새로운 데이터에는 제대로 대응하지 못하는 상태를 말한다. ..

[밑러닝] 배치 정규화(Batch Normalization)

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 배치 정규화(Batch Normalization) 배치 정규화의 효과 NLP에서의 배치 정규화는? 1. 배치 정규화(Batch Normalization) 배치 정규화에 대해 정식으로 소개하기 전에, 이 방식이 왜 그렇게 열광받는지 소개하겠다. 배치 정규화에는 다음과 같은 장점이 있다. 학습을 빨리 진행할 수 있다. 초깃값에 크게 의존하지 않는다. 오버피팅을 억제한다. 배치 정규화는 각 층에서의 활성화 값이 적당히 분포되도록 조정하는 것이다. 조금 더 자세히 얘기를 해보자면, 학습 시에 평균이 0, 분산이 1이 되..