코드를 작성하다보면 수많은 오류를 마주하게 된다. 그러면 우리는 오류 메시지를 통해서 잘못된 부분을 수정해서 오류를 줄여나간다. 그런데, 때로는 실행 도중 오류가 발생하더라도 이를 무시한 채 수행하기를 원할 때도 있을 것이다. Python에서는 try와 execpt를 통해서 이러한 예외 처리를 할 수 있다. 일반적으로 오류가 발생하는 대표적인 경우는 0으로 다른 수를 나누는 경우(ZeroDivisionError), directory 내에 없는 파일을 열고자 하는 경우(FileNotFoundError), 그리고 리스트 범위를 넘어서는 부분을 얻고자 하는 경우(IndexError) 등이 속한다. 이러한 오류를 처리하기 위한 구문을 작성하는 방법은 다음과 같다. try: ... except [발생 오류[as ..
데이터 사이언스 사용 설명서 검색 결과
(카테고리는 Kaggle이지만, 데이터를 분석하는 과정을 실습하는 과정이므로, 해당 카테고리에 포스팅하게 되었다.) 데이터 다운로드 주소는 https://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+Smartphones UCI Machine Learning Repository: Human Activity Recognition Using Smartphones Data Set Human Activity Recognition Using Smartphones Data Set Download: Data Folder, Data Set Description Abstract: Human Activity Recognition database buil..
배열 큐(Array Queue)란? 배열을 이용해 구현한 큐를 의미한다. 1차원 배열을 이용하기 때문에 자료들끼리 물리적으로도 연결되어 있고 배열 생성하기 전에 배열의 크기를 미리 정해주어야 한다. 배열로 만든 큐는 자료의 추가/제거를 반복하다 보면 빈 공간이 있음에도 이를 인식하지 못하는 경우가 생겨 메모리가 비효율적으로 쓰이는 문제점이 있다. 이는 다음에 구현해볼 배열을 이용한 원형 큐, 연결 리스트를 이용한 큐로 이를 해결할 수 있다. 각 함수 중간에 AQ가 있는데 ArrayQueue을 의미한다. 배열 큐의 구현 소스 파일 구성은 다음과 같다. 파일 이름 내용 arrayqueue.h 구조체 및 함수 선언 arrayqueue.cpp 함수 구현 arrayqueuemain.cpp main 함수 실행 1...
큐(Queue)이란? 큐도 자료를 차례대로 저장하는 선형 자료구조이다. 큐가 가지는 고유 특성은 FIFO(First-In-First-Out) - 선입선출(先入先出), 즉, 가장 먼저 들어간 자료가 가장 먼저 나오는 자료이다'라는 특성이다. 일상생활에서도 큐라는 단어를 자주 접한다.. 예를 들어 식당에 들어가기 위해 길게 늘어진 사람들의 줄을 대기열 혹은 큐라고 말한다. 큐가 길다는 말은 기다리는 사람들이 많아서 시간이 오래 걸린다는 의미로도 사용한다. 이러한 큐에 특징은 선입선출의 특성을 가진다. 스택에서는 스택의 특성 때문에 모든 연산이 스택의 제일 위(Top)에서 일어난다. 큐에서는 자료를 추가할 때는 뒤에서 추가하고 자료를 반환할 때는 앞에서 자료를 빼가기 때문에 스택보다 좀 더 생각해야 하는 부분..
[OpenCV Practice 10 - 1] 이미지 필터링 (Image Filtering & Blurring) OpenCV: Smoothing Images Goals Learn to: Blur images with various low pass filters Apply custom-made filters to images (2D convolution) 2D Convolution ( Image Filtering ) As in one-dimensional signa.. dsbook.tistory.com def onChange(x): pass def blurringTrackbar(): img = cv2.imread('atom-4.png') cv2.namedWindow('blurring', cv2.WINDOW_..
OpenCV: Smoothing Images Goals Learn to: Blur images with various low pass filters Apply custom-made filters to images (2D convolution) 2D Convolution ( Image Filtering ) As in one-dimensional signals, images also can be filtered with various low-pass filters (LPF), high-pass filt docs.opencv.org import cv2 import numpy as np import matplotlib.pyplot as plt 이미지 주파수 이미지도 음성 신호처럼 주파수로 표현할 수 있다. 일반..
VI란 Linux와 Unix 환경에서 주로 사용되는 텍스트 editor이다. 터미널에서의 빠른 작동은 물론, 텍스트 editor로써의 충분한 기능을 가지고 있기 때문에 서버 관리와 관련된 개발을 할 때는 많이 사용된다. 하지만 명령어 입력 방식으로 사용해야 하기 때문에 Windows의 메모장을 주로 사용하던 사람이 VI를 처음 접하게 되면 매우 불편하고 복잡하게 느낄 수 있다. 그래서 VI의 사용법에 대해 간단히 소개하고자 한다. 1. VI 실행 1) 새로운 문서 열기 vi vi filename 파일명을 입력하지 않고 VI 명령어로만 editor를 실행하면 버전 정보가 출력되며, newfile이라는 이름을 지정한 뒤 editor를 실행하면 버전정보가 나타나지 않고 좌측 하단에 입력한 파일명과 함께 편집할..
회귀 이전 포스팅에서 설명한 회귀의 형태는 y = w_0 * x_0 + .... + w_n * x_n 이었다. 이것은 점들의 관계를 직선으로 표현하는 식이다. 하지만, 모든 현상을 직선으로 표현하는 것이 최선은 아니다. 어느 경우에는 조금 더 복잡하게 하는 경우에 최적의 회귀선을 나타내는 것일수도 있다. 이런 것을 표현하기 위해 다항회귀를 사용한다. 여기에서 "독립변수"가 단항식(x_0 ... x_n)이 아닌 2차, 3차로 표현되는 것을 다항(Polynomial) 회귀라고 한다. 다항이라는 것은 x_0, x_1, x_0 * x_1, (x_0)^2, (x_1)^2 .... 이라고 생각하면 된다. "독립변수"라는 것을 강조한 이유는 다항회귀면 비선형회귀여야 하는 것이라는 것에 대한 오해를 풀기 위해서이다. ..
캐글에 있는 데이터로 피마 인디언 당뇨병 데이터 세트를 이용해 당뇨병 여부를 판단하는 머신러닝 예측 모델을 수립하고, 평가 지표를 이용해서 성능을 측정하며 튜닝할 것이다. 데이터는 https://www.kaggle.com/uciml/pima-indians-diabetes-database에 들어가서 다운받을 수 있다. 데이터를 다운받은 다음 성능 지표들을 임포트하고, 정규화(StandardScaler) , 로지스틱 회귀 모델을 사용할 수 있는 LogisticRegression 클래스를 임포트한다. (Numpy, Pandas, Matplotlib.pyplot은 지난 포스팅과 동일하므로 생략) import numpy as np import pandas as pd import matplotlib.pyplot a..
회귀 지도학습은 2가지 유형, 분류와 회귀로 나뉜다. 분류 - 예측값이 카테고리와 같은 이산형 값 회귀 - 예측값이 연속형 숫자 회귀는 그 중에서도 선형회귀가 가장 많이 사용된다. 선형 회귀는 직선형 회귀선을 예측값과 실제값의 차이가 가장 작게 산출되도록 가중치들을 최적화하여 찾아내는 방식을 의미한다. 단순 선형 회귀 단순 선형 회귀는 독립변수(X) 하나, 종속변수(Y)도 하나인 선형 회귀를 의미한다. 독립변수와 종속변수가 갑자기 나와서 헷갈릴 수도 있지만, 쉽게 말해 독립변수는 피처를, 종속변수는 레이블 값을 의미한다. 따라서 단순 선형 회귀는 피처가 하나인 데이터를 가장 잘 나타내는 회귀선을 찾는 기법이라고 생각하면 된다. X, Y를 좌표평면에 찍고, 그 점들을 가장 잘 표현할 수 있는 직선을 찾아내..
최근댓글