여기서는 모든 개발자가 Another Level의 개발자로 도약할 수 있도록 좋은 Tip을 간단히 공유하고자 합니다. 1. GitHub 활용하기 회사 관계자들은 어떤 일을 할 수 있는지 명확하게 드러나는 개발자를 선호합니다. 자신의 성과와 관계없이 무엇을 경험했는지를 중점적으로 보기 때문에 지속적인 업로드를 통해 관리하는 것이 중요합니다. 거창하지 않더라도 개발자로서의 의지를 보여주는 것이 면접관의 기대감을 높인다고 합니다. 2. 개발자로서의 필독도서 1) Effective Series : 자신의 주 프로그래밍 언어를 깊게 파악할 수 있는 도서 2) Clean Code : 가독성 있는 코드 작성을 위한 도서 3. 기본에 충실하기 공의 회전의 원리나 자세에 따라 달라지는 투구 및 컨디션 파악에 대해 관심을..
데이터 사이언스 사용 설명서 검색 결과
(2021-07-26 수정) 이번에 크롤링 관련 모듈인 korea_news_crawler에 대해서 공부를 하면서 해당 파일을 출력하던 도중 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 2: invalid start byte 일단 에러의 의미는 utf-8 방식으로 디코딩을 할 수 없다는 뜻이고, 3번째 위치(2)의 바이트가 0xb0이라는 의미이다. 즉, 3번째 위치에 있는 바이트를 utf-8방식으로 디코딩할 수 없다는 의미이다. 이런 경우, pd.read_csv()함수 안에 단지 파일명만 파라미터로 주는 것이 아니라 encoding이라는 파라미터를 추가하여 기존의 방식인 'utf-8'이 아닌 다른 방식을 지정을 해주어야 한다. ..
※머신러닝의 목적 무엇(X)으로 무엇(Y)를 예측하고 싶다! 이때, 데이터는 주로 행렬, 배열 등의 형태로 되어있다. 머신러닝의 목적을 간단하게 수식으로 표현을 한다면 Y = F(X) 이다. X : 우리가 가지고 있는 데이터를 의미하며, 입력변수 / 독립변수 / Feature이라고 부른다. Y : 우리가 예측하고 싶은 데이터를 의미하며, 출력변수 / 종속변수 / 반응변수라고 부른다. F : X를 통해서 Y를 예측할 수 있도록 입력변수와 출력변수간 관계를 의미한다. 머신러닝은 주어진 데이터를 통해 입력변수와 출력변수 간 관계를 만드는 함수 F를 만드는 것이라고 볼 수 있다. ※머신러닝이 필요한 이유 데이터의 양이 기하급수적으로 늘어나고 있는 상황에서 모든 분야의 모집단을 전수조사한다는 것은 거의 불가능하고..
앞선 내용에서 영상의 이동, 회전 및 스케일링에 대해 다룬 적이 있다. 이미지 변환 - 이동, 회전, 스케일링 1. What is OpenCV? OpenCV란 Computer Vision을 위한 프로그래밍 라이브러리이며, TensorFlow나 PyTorch등의 Deep Learning Framework를 지원한다. 자바, 매트립 등 다양한 언어에서 개발환경을 지원하며, 여기서.. dsbook.tistory.com 위와 같은 경우는 이미지의 변환 후에도 기존 형태가 유지되지만, 이미지에 뒤틀기(Wariping) 변환을 주면 기존 형태와는 다르게 나타난다. 1. Affine Transform 아핀 변환(Affine Transform)이란 이동이나 회전 등을 포함하는 변환으로, 길이의 비율과 평행성이 보존되며..
이미지의 특정 영역을 지정하는 것에 대해 ROI(Region Of Interest)라고 한다. OpenCV가 Python언어에 대해서는 관심영역을 지정하도록 지원하는 별도의 API는 없지만, NumPy의 slicing을 통해서 이와 관련된 작업을 할 수 있다. img라는 이미지의 관심 영역의 시작 좌표가 (x, y)이고 해당 영역의 폭이 w, 높이가 h라고 하면 관심 영역을 지정하는 코드는 ROI = img[y:y+h, x:x+w] 와 같이 작성할 수 있다. 이는 img의 y행에서 y+h행까지, x열에서 x+w열까지 slicing한 것을 의미한다. 1. 좌표 지정 import cv2 import numpy as np img = cv2.imread('image.jpg') x = 350; y = 125 w ..
모델 선택과 평가, 교차 검증 파이프라인(pipeline), 특성 스케일링(feature scaling), fit, transform, fit_transform() 메서드의 차이 데이터 변환기, Pipeline 만들기 계층적 샘플링 (Stratified Sampling) 데이터 셋이 충분히 크다면 일반.. dsbook.tistory.com 가능성 있는 모델들을 모두 추렸다고 가정한 후, 이제 이 모델들을 세부 튜닝하기 위한 방법을 몇 가지 살펴보자. 하이퍼 파라미터 튜닝 1. GridSearchCV (그리드 탐색) 가장 단순한 방법은 만족할 만한 하이퍼 파라미터 조합을 찾을 때까지 수동으로 하이퍼 파라미터를 조정하는 것이다. 이는 매우 지루한 작업이고 또 많은 경우의 수를 탐색하기에는 시간이 부족할 수도..
파이프라인(pipeline), 특성 스케일링(feature scaling), fit, transform, fit_transform() 메서드의 차이 데이터 변환기, Pipeline 만들기 계층적 샘플링 (Stratified Sampling) 데이터 셋이 충분히 크다면 일반 훈련 데이터 셋을 무작위로 샘플링 하여도 큰 문제가 발생하지 않는다. 하지만 그렇지 않으면 데�� dsbook.tistory.com 위에서 전처리한 데이터들로 학습시켜보자. 모델 선택과 평가(교차검증) 1. LinearRegression (선형 회귀) from sklearn.linear_model import LinearRegression lin_reg = LinearRegression() #준비된 데이터와 레이블로 모델 학습 lin_..
마우스의 입력을 통해 이벤트 처리를 수행할 함수를 작성해서 마우스 입력 상태에 따라 이미지의 출력 결과가 다르게 나타나도록 할 수 있다. import cv2 import numpy as np img = np.full((300,300,3), 255, dtype = np.uint8) title = "Mouse Event" cv2.imshow(title, img) def Mouse(event, x, y, flag, param): if event == cv2.EVENT_LBUTTONDOWN: # 왼쪽 버튼 클릭 cv2.circle(img, (x,y), 15, (255,0,0), -1) cv2.imshow(title, img) cv2.setMouseCallback(title, Mouse) while True: i..
데이터 변환기, Pipeline 만들기 계층적 샘플링 (Stratified Sampling) 데이터 셋이 충분히 크다면 일반 훈련 데이터 셋을 무작위로 샘플링 하여도 큰 문제가 발생하지 않는다. 하지만 그렇지 않으면 데이터 편향이 생길 가능성이 크다. 예를들어 여론 설문조사 기관 dsbook.tistory.com 계층적 샘플링에서 다루었던 housing 데이터들을 가지고 예를 들어보자. 현재 이 데이터들은 StratifiedShuffleSplit 객체에 의해 훈련 세트와 테스트 세트로 나뉘어진 상태이며, 훈련 세트는 다시 housing으로 초기화하였고, 훈련 세트의 레이블은 housing_label로 초기화하였다. 이 데이터들을 전처리하기 위한 파이프라인을 만들어보자. housing = strat_tra..
데이터 셋이 충분히 크다면 일반 훈련 데이터 셋을 무작위로 샘플링 하여도 큰 문제가 발생하지 않는다. 하지만 그렇지 않으면 데이터 편향이 생길 가능성이 크다. 예를들어 여론 설문조사 기관에서 무작위로 1,000명을 선정해 조사를 한다고 가정하자. 무작위로 선정한 1,000명이, 물론 그럴 가능성은 거의 없겠지만 한 성별로만 이루어져 있거나 특정 연령대에 집중되어 있는 경우, 그 데이터 셋에 충분히 신뢰가 가진 않을 것이다. 이를 위해 전체 인구를 계층이라는 동질의 그룹으로 나누고, 테스트 세트가 전체 인구를 대표하도록 각 계층에서 올바른 수의 샘플을 추출한다. 인구 계층을 성별에 따라 남성와 여성으로 나눈다고 가정하자. 2020년 우리나라 남녀 성비는 남자가 50.1%, 여자가 49.9%이다. 여기서 전..
최근댓글