Yet Never Lose Faith

- Good to Great , Jim Collins

How To Preprocess Image Data 자세히보기

파이썬 11

[Python] 문자열 포맷팅하는 3가지 방법

1. % 포맷팅 % 문자를 사용해서 원하는 형식으로 포맷팅하는 방법이다. ' % + 자료형 종류 ' % 값의 형식으로 사용한다. n = float(input()) print("%f" % n) # 입력 : 10 # 결과 : 10.0000 자료형별로 어떤 문자를 사용해야하는지 숙지해야한다. 자주 사용하는 자료형을 정리했다. 자료형 문자 정수 %d 실수 %f 문자열 %s 8진수 %o 16진수 %x % %% 사용할 때 주의해야하는 점은 명시한 자료형마다 입력값으로 사용할 수 있는 자료형이 정해져있다는 점이다. input() 함수로 입력 받은 문자열을 실수형으로 포맷팅 하려고 하면 아래와 같은 오류가 발생한다. # 잘못 사용하는 경우 n = input() print("%f" % n) # 입력 : 10 ------..

Python 2020.11.19

[Python] 다양한 종류 문자열 출력

기본적으로 파이썬에서 문자열을 선언하기 위해서는 큰 따옴표(")나 작은따옴표(')를 사용할 수 있다. 1. 큰 따옴표나 작은 따옴표를 포함한 문자열 - 문자열을 큰 따옴표로 구성하면 내부적으로 작은 따옴표를 포함할 수 있고 반대로 작은 따옴표로 구성하면 내부적으로 큰 따옴표를 포함할 수 있다. - 문자열을 큰 따옴표로 구성했는데 큰 따옴표를 포함해야한다면 백슬래시(\)를 사용하면 된다. (작은 따옴표의 경우도 동일) print("Hello World") # Hello World print('Hello World') Hello World print('\'Hello\'') #'Hello' + 2021.02.13 추가 - 백슬래시를 출력하고 싶은 경우에도 앞에 백슬래시를 추가해주면 된다. (백준 10172) ..

Python 2020.11.16

미니배치경사하강법을 이용하는 로지스틱 회귀 모델 구현하기

이번 포스팅에서는 미니배치경사하강법의 개념과 이를 이용해서 학습하는 로지스틱 회귀 모델을 구현해본다. Mini Batch Gradient Descent Method. 미니배치경사하강법은 확률적 경사하강법과 배치경사하강법의 장점을 절충한 방식으로, 실전에서 가장 많이 사용되는 경사하강법이다. 구현 방식은 배치 경사 하강법과 비슷하지만 에포크마다 전체 데이터를 사용하는 것이 아니라 조금씩 나누어(Mini Batch) 정방향 계산을 수행하고 그레이디언트를 구하여 가중치를 업데이트 한다. 미니 배치의 크기는 보통 16,32,64 등 2의 배수를 사용한다. 미니배치의 크기가 1이라면 확률적 경사하강법이 되는 것이고, 입력데이터의 크기와 동일하다면 배치경사하강법이 된다. 미니배치의 크기가 작으면 확률적 경사하강법처..

배치 경사 하강법을 이용하는 로지스틱 회귀 모델 구현하기

경사하강법은 가중치 업데이트에 사용하는 샘플(입력데이터)의 개수에 따라 배치 경사 하강법 : 모든 샘플을 사용 확률적 경사 하강법 : 무작위로 1개의 샘플을 뽑아 사용 미니 배치 경사 하강법 : 무작위로 여러개의 샘플을 뽑아 사용 3가지로 나눌 수 있다. 이번 포스팅에서는 배치 경사 하강법을 통해서 가중치 업데이트를 하는 로지스틱 회귀 모델을 구현해본다. Library Import import numpy as np import matplotlib.pyplot as plt Data Load from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split cancer = load_breast_..

카테고리 없음 2020.10.08

[모델 구축] 이진분류 로지스틱 회귀모델 구현하기 - 심화

이번 포스팅에서는 이전 포스팅에서 만들었던 로지스틱 회귀 모델을 좀 더 다듬어본다. STEP1. 손실함수 결괏값 추적하기 저번 포스팅에서 로지스틱 회귀모델이 경사하강법을 통해 최적의 가중치를 찾도록 구현했다. 그런데 경사하강법은 손실함수의 결괏값을 최소화하는 방향으로 가중치를 업데이트 하기 때문에 손실함수 결괏값의 추이를 보면 가중치가 잘 업데이트 되었는지, 즉 모델의 학습과정이 타당했는지 판단할 수 있다. 위 그림과 같이 우하향하는 그래프라면 손실함수의 결괏값이 감소하고 있다는 뜻이기 때문에 모델이 올바른 방향으로 학습을 진행하고 있다고 볼 수 있다. 반면에 손실함수의 결괏값이 감소하지 않는다면 모델의 학습과정에 문제가 있는 것이다. (1) 초기화 함수 추가 # (1) 초기화 함수 추가 def __in..

[데이터 탐색] 데이터 탐색에 유용한 함수 2탄 - boxplot(), unique()

이번 포스팅에서는 데이터 탐색에 쓰이는 함수 2가지를 알아본다. 샘플 데이터 로드 from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() cancer 사이킷 런에서 제공하는 위스콘신 유방암 데이터 세트를 사용했다. 유방암 데이터 세트에는 유방암 세포의 특징 10개에 대해 평균, 표준오차, 최대 이상치가 기록되어 있다. 또한 각 세포가 악성종양(1)인지 정상종양(0)인지에 대한 정보가 target 데이터에 담겨있다. boxplot() # 박스플롯 그리기 import matplotlib.pyplot as plt plt.boxplot(cancer.data) plt.xlabel('feature') plt.ylabel('value..

[데이터 탐색] 데이터 탐색을 위한 파이썬 명령어 3가지

이번 포스팅에서는 기본적인 데이터탐색에 사용할 수 있는 파이썬 명령어 3가지를 다룬다. 우선, 예시에서 사용할 데이터를 세팅해보자. 사이킷런에서 제공하는 당뇨병 환자의 데이터 세트를 로드해서 사용하겠다. 로드한 데이터 셋은 diabetes라는 변수에 저장했다. from sklearn.datasets import load_diabetes diabetes = load_diabetes() | 1. numpy 배열의 shape 속성 머신러닝에서는 데이터를 넘파이 배열로 저장하는 경우가 많다. 넘파이 배열의 shape 속성은 배열의 크기 정보를 담고있다. 배열의 크기정보를 통해서 우리는 데이터 세트에서 샘플의 개수와 특성의 수를 파악할 수 있다. 샘플이란 데이터 1 세트를 의미하고, 특성이란 한 샘플의 여러 특징..

5. 머신러닝, 딥러닝 구현을 위한 기초 패키지 2가지 (numpy, matplotlib)

이번 포스팅에서는 머신러닝, 딥러닝을 구현하기 위해 기초적으로 알아둬야하는 패키지 2가지를 알아보겠다. 패키지란 특정 기능을 구현하기 위한 함수들의 모음, 즉 라이브러리 정도로 생각하면 된다. | 1. numpy(넘파이) 넘파이 패키지는 파이썬의 핵심 패키지 중 하나이다. 넘파이 패키지는 아주 방대하지만 이번 포스팅에서는 머신러닝,딥러닝을 위한 필수 기능만을 다룬다. 넘파이를 통해서 다차원 배열을 구현하고, 배열을 이용한 다양한 다양한 통계 및 수학함수를 사용할 수 있다. 사실 다차원 배열을 구현하기 위해서는 파이썬의 기본 자료구조 중 하나인 리스트를 사용하는 방법도 있다. 하지만 파이썬 리스트로 만든 배열은 배열의 크기가 커질 수록 성능이 떨어진다는 단점이 있다. 넘파이는 저수준 언어로 다차원 배열을 ..

4. 머신러닝, 딥러닝 구현 위한 개발 툴 2가지 (Jupyter notebook, Colab)

저번 포스팅까지 머신러닝, 딥러닝에 대한 기초적인 이론에 대해서 살펴보았다. 이번 포스팅에서는 머신러닝, 딥러닝을 구현하는데 사용하는 개발툴에 대해서 알아보겠다. 그 전에! 개발언어에 대한 언급을 잠깐 해보겠다. 머신러닝 개발언어로는 파이썬이 가장 많이 쓰인다. 몇 가지 장점이 있기 때문이다. 첫째는 프로그래밍이 단순해진다. 이는 파이썬 언어 자체의 특징이기도 하다. 파이썬은 원래 교육용으로 설계되었기 때문에 읽기 쉽고, 그래서 효율적인 코드를 되도록 간단하게 쓸 수 있도록 하려는 철학이 구석 구석까지 침투해 있어, 파이썬 커뮤니티에서도 알기 쉬운 코드를 선호하는 경향이 강하다. -위키백과- 둘째로, 머신러닝 라이브러리가 많다. 텐서플로우나 사이킷런 등 머신러닝이 구현된 라이브러리가 많다. 개발자가 머신..

자연어처리(카테고리 분류) 데이터 전처리

지난 포스팅에서는 형태소 분석 방법과 문장을 수치로 변환하는 예제에 대해서 공부했다. 이번 포스팅은 "문서"를 입력 받아 수치로 변환하는 방법에 대해서 공부해보겠다. 문장을 수치로 변환하는 예제를 이해했다면, 문서를 변환하는 건 아주 간단하다. 문서를 문장으로 바꾼 뒤, 문장을 수치로 바꾸면 된다. read() 함수를 통해 파일(문서)를 한 줄씩 읽은 후 add_text()에 인자로 전달한다. def add_file(path) : with open(path, "r", encoding="utf-8") as f : s = f.read() add_text(s) 문서별 형태소 분석까지 마쳤다. 이후에는 calc_files()를 사용하여 수치로 변환한다. add_text()와 calc_files()가 궁금하다면?..