본문 바로가기
728x90

IT 개인학습45

매직메소드 매직 메소드 클래스 안에 정의된 함수 ( 리스트, 튜플, 딕셔너리, 정수, 실수, 문자열 등과 같은 타입 역시 클래스를 통해 만들어진 기본 데이터 타입 ) ex 직접 만든 타입도 인덱싱 기능을 제공하려 할때 매직메소드 사용 class Notebook: def __init__(self, name, price): # 객체의 초기화를 위해 클래스 생성시 호출될때 동작 self._name = name self._price = price def __str__(self): # 클래스의 인스턴스에서 str()이 호출될 때의 동작 return f'{self.__class__.name} Class Info : {self._name}, {self._price}' def __add__(self, x): # 사용하기 쉽게 +.. 2021. 7. 18.
Class , Object , Method ( OOP ) Object-Oriented Programming 객체 지향 프로그래밍 클래스를 사용해서 프로그래밍 하는 방법 ( 프로그램을 수많은 '객체'라는 단위로 구분하고, 이 객체들의 상호작용하는 방식 ) ==> 객체를 우선으로 생각하는 언어 ==> 객체를 효율적으로 만들고 사용하는 것이 목적 클래스는 어떤 물건을 찍어내기 위한 일종의 틀 class 객체는 그 틀을 이용해서 찍어내는 실제 물건 object 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점 일반적으로 프로그램을 만들때 항상 염두에 둬야할 2가지 1. 같은 코드를 반복하지 않는다. 2. 코.. 2021. 7. 18.
Python 함수 Python - 다른 언어에 비해 구현상의 복잡합이 적은 편이지만 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려해야한다. But 코테에서 이러한 문제는 드물다. 데이터의 개수(리스트의 길이) 메모리 사용량 1,000 약 4 KB 1,000,000 약 4 MB 10,000,000 약 40MB 기본 자료형(문자열, 숫자, bool) 등은 특정 하나의 값을 사용한다. 컬렉션은 말 그대로 여러 개의 값을 저장할 수 있음 * 리스트는 동적이다. 동적이라 함은 메소드를 사용해 값을 추가하거나 제거가능 튜플과의 차이점 : 리스트는 메소드를 활용하여 값 수정가능. 딕셔너리와 차이점 : 인덱스를 기반으로 값을 저장하고 수정할 수 있다. 파이썬 리스트는 탐색, 삽입, 삭제와 같은 연산에 대한 메소드를 갖고 있으므로 단.. 2021. 7. 18.
Train / Validation / Test Train / Test - > 답지를 보고 훈련을 하게되면 다른 학습데이터가 들어와도 제대로 맞출 수가 없다, train_test_split 함수는 데이터를 랜덤하게 섞은 후, 인덱스 기반으로 train set과 validation set으로 나누는 함수 - 배열의 형태가 들어갈 수 없음 * training set중 몇개를 따로 빼내서(hold out) test error를 직접적으로 추정하는 방법. hold-out은 데이터셋을 훈련셋과 테스트셋으로 분리 예를들어, 데이터셋의 80%를 훈련셋으로 삼아 모델을 훈련시키고, 나머지 20%를 테스트셋으로 이용해서 성능을 평가 그런데 훈련셋과 테스트셋으로만 나눠서 모델의 성능을 평가하다보면, 테스트셋이 모델의 파라미터 설정에 큰 영향 ==> 모델이 테스트셋에 오.. 2021. 7. 7.
정규화( Normalization, Standardization, Regularization ) Generalization : 통계에서 말하는 일반화를 말한다. 기계학습에서는 일반화 성능을 향상시킨다는 말이 많이 나오는데, Train data에 너무 overfitting 되지 않고, 좀 더 일반적인 모델을 만드는 것을 의미한다 == 학습된 모델이 새로운 데이터에서 얼마나 좋은 실행이 일어나는지의 정도 출처: https://jkook.tistory.com/23 [JinKook] Normalization 값의 범위(scale)를 0~1 사이의 값으로 바꾸는 것 학습 전에 scaling하는 것 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상) ==> normalization 하지 않으면 중요한 특성임에도 다른 특.. 2021. 7. 4.
728x90