728x90

IT 417

[python] 머신러닝을 위한 Python(8) ; Data Cleansing

1) Data quality problems - 데이터의 최대/최소가 다름 -> Scale에 따른 y값에 영향 - Ordinary 또는 Nominal한 값들(범주형 데이터)의 표현은 어떻게? - 잘못 기입된 값들에 대한 처리 - 값이 없을 경우는 어떻게? - 극단적으로 큰 값 또는 작은 값들은 그대로 놔둬야 하는가? 2) Data preprocessing issues 기본적으로 아래의 세 가지에 대해 전처리를 한다. - 데이터가 빠진 경우 (결측치의 처리) - 라벨링된 데이터(category) 데이터의 처리 - 데이터의 scale의 차이가 매우 크게 날 경우 3) Missing Values 데이터가 없을 때 할 수 있는 전략은 아래와 같다. ◆ 데이터가 없으면 sample을 drop ◆ 데이터가 없는 최..

IT/언어 2020.06.05

[python] 머신러닝을 위한 Python(7) ; Data Handling - Pandas # 2

1) Groupby 1 ​ (1) Groupby - SQL groupby 명령어와 같음 - split => apply => combine 과정을 거쳐 연산 df.groupby("묶음의 기준이 되는 컬럼")["적용받는 컬럼"].적용받는연산() ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2], 'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017], 'Points':[8..

IT/언어 2020.06.05

[python] 머신러닝을 위한 Python(6); Data Handling - Pandas # 1

1) Pandas ​ (1) Pandas란 구조화된 데이터의 처리를 지원하는 Python라이브러리 = Python계의 엑셀 ​ (2) Pandas의 특징 - 구조화된 데이터의 처리를 지원하는 Python 라이브러리 - 고성능 Array계산 라이브러리인 Numpy와 통합하여, 강력한 "스프레드시트"처리 기능을 제공 - 인덱싱, 연산용 함수, 전처리 함수 등을 제공함 ​ (3) 데이터 로딩 import pandas as pd # 라이브러리 호출 data_url = "http://~" df_data = pd.read_csv(data_url, sep="\s+", header = None) # csv타입 데이터 로드, separate는 빈 공간으로 지정하고, Column은 없음 df_data.head() #처음 ..

IT/언어 2020.06.04

[python] 머신러닝을 위한 Python(5) ; Data handling - Numerical Python

1) Numpy - Numerical Python - 파이썬의 고성능 과학 계산용 패키지 - Matrix와 Vector와 같은 Array 연산의 사실상의 표준 ​ (1) Numpy의 특징 - 일반 List에 비해 빠르고, 메모리 효율적 - 반복문 없이 데이터 배열에 대한 처리를 지원 - 선형대수와 관련된 다양한 기능을 제공함 - C, C++, 포트란 등의 레거시 언어와 통합을 하여 개발이 가능함 ​ (2) ndarray - Numpy의 가장 기본이 되는 단위 ​ (3) Array creation import numpy as np test_array = np.array(["1","4",5,8], float) print(test_array) type(test_array[3]) >> [1. 4. 5. 8.] ..

IT/언어 2020.06.04

[python] 머신러닝을 위한 Python(4)

1. Case Study - News Categorization ​지금까지 배운 List Comprehension, Data Structure(Collections), Pythonic Code 작성법 등을 기반으로 다른 패키지 사용 없이 Python만으로 어떠한 뉴스와 비슷한 뉴스를 찾아내도록 코드를 작성해보자. ​ 1) 문자를 컴퓨터에게 알려주기 (1) 이진수만 이해하는 컴퓨터는 문자 자체를 인식할 수 없으므로 문자를 숫자로 변형시켜줘야한다. (2) 숫자로 '비슷함'을 표현한다는 것은 '가까움'을 표현하는 것이다. 수학적으로 좌표 평면상에 위치한 가장 가까운 두 점은 유사하다고 할 수 있다. 그래프 상에 위치한 두 점 사이의 거리는 피타고라스 정의로 구할 수 있다. 정리하면 숫자를 (좌표 평면상에 표현..

IT/언어 2020.06.04

[python] 머신러닝을 위한 Python(3)

1. Data Structure - Collections ​- List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조(모듈) - 편의성, 실행 효율 등을 사용자에게 제공함 - 아래의 모듈이 존재함 from collections import deque from collections import Counter from collections import OrderedDict from collections import defaultdict from collections import namedtuple 1) deque - Stack과 Queue를 지원하는 모듈 - List에 비해 효율적인 자료 저장 방식을 지원 - 효율적 메모리 구조로 처리 속도 향상 - reverse,rotate q..

IT/언어 2020.06.03

[python] 머신러닝을 위한 Python(2)

1. Pythonic Code - Enumerate & Zip ​ 1) Enumerate List의 element를 추출할 때 인덱스도 함께 추출하는 방법 # list에 있는 index 값을 unpacking ; i에는 index번호가, v에는 list의 요소가 대입됨 for i, v in enumerate(['tic', 'tac', 'toc']): print(i,v) >> 0 tic 1 tac 2 toc # 응용 (1) : list의 index와 값을 unpacking하여 list로 저장 mylist = ["a", "b", "c", "d"] newlist = list(enumerate(mylist)) print(newlist) >> [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')..

IT/언어 2020.06.03

[python] 머신러닝을 위한 Python(1)

1. Pythonic Code Overview ​ 많은 언어에서 여러 단어들을 하나로 붙일 때는 아래와 같이 for문 코드를 사용한다. colors = ['red', 'blue', 'green', 'yellow'] result = '' for s in colors : result += s 그러나 위의 코드를 파이썬답게 작성하면 아래와 같다. colors = ['red', 'blue', 'green', 'yellow'] result = ''.join(colors) print(result) Pythonic 코드를 배워야 하는 이유는 다음와 같다. ​ 1) 남의 코드에 대한 이해도 ; 많은 개발자들이 python 스타일로 코딩한다. 2) 효율 ; 단순 for loop append보다 list가 조금 더 빠르다..

IT/언어 2020.06.03

[python] 언더스코어(_, underscore,アンダースコア) 사용 정리

1. return 값을 무시하기 위해서 H,W,_ = img.shape 이것은 .shape의 3번째의 return 값을 무시하기 위한 언더스코어이다. python은 라이브러리가 많아서, 함수를 임포트하여 사용하는 일이 많다. 그럴 때, 혹시 함수로부터의 return값이 복수여서 사용하지 않는 부분이 있다면 언더스코어를 사용하여 del 이나 return시에 폐기하도록 할 수 있다. 2. 함수명에 사용했을 경우 이 경우 4가지 종류가 있는듯 하다. 게다가 PEP8코딩 규약에 정의가 되어 있는듯 하다. ※ PEP8 ; Naming Convention에 자세하게 적혀 있는 웹 사이트. 1) _function(x) : 함수 앞에 1개 def _single_leading_underscore(x): return n ..

IT/언어 2020.05.28

[python/Numpy] Numpy배열 ndarray의 슬라이스를 이용한 부분 배열의 선택과 대입

Python에서는 ':'(클론)을 이용한 슬라이스 [start:stop:step]를 이용하여, 리스트나 문자열, 튜플등의 시퀀스 객체의 일부를 선택하여 얻거나 다른 값을 대입하는 것이 가능하다. Numpy배열 ndarray에서도 슬라이로 부분 배열을 선택하여 추출하거나 다른 값을 대입하는 것이 가능하다. 이 포스팅에서 아래의 내용에 대해서 설명한다. - 슬라이스의 기본 - 1차원의 Numpy배열 ndarray에서의 슬라이스(슬라이싱) - 다차원의 Numpy배열 ndarray에서의 슬라이스(슬라이싱) - 뷰(view, 참조)와 복사 - 펜시 인덱싱(; 정수 리스트 혹은 배열을 이용하여 여러 개를 동시에 선택하는 방식)과의 조합 Numpy배열 ndarray의 요소나 부분 배열을 선택하는 방법에 대한 포스팅을..

IT/언어 2020.05.27
728x90