앎을 경계하기

DAFIT 58

<DAFIT> 06 머신러닝을 통한 당뇨병 예측 - 02 NaN값,NULL 값 처리하기 (+ 삽질연속, 실망스러운 결과..)

이번에는 데이터 결측치를 처리하는 문제였다. 데이터 결측치를 처리하는 방법론들이 대표적인게 있을 것 같아서 찾아보니 역시나 다양한 방법들이 있었다. https://m.blog.naver.com/tjdudwo93/220976082118 데이터 분석 최대의 적! 결측치(NA값)처리하기 이번 시간은 데이터 전처리 과정에서 가장 중요하다고 해도 과언이 아닌(물론 다 중요하지... blog.naver.com 이 블로그를 참고하면서도 잘 모르는 내용들이 있어서 다핏 단톡방에도 질문... 도움이 되는 답변들을 받았다! 일단은 데이터를 받으면 데이터들의 피쳐들간의 상관관계를 파악하라는 조언을 받아 데이터분석 모르지만,,ㅎㅎ 이것저것 찾아서 적용해보았다. 각 피처들에 대한 정보는 다음과 같다. preg: 임신 횟수 pl..

<DAFIT> 06 머신러닝을 통한 당뇨병 예측 - 01 데이터셋 다운로드 및 읽기

데이터셋은 아래 다핏 사이트에서 받을 수 있다. 첫 번째 문제는 굉장히 쉽다. pandas로 csv를 읽으면된다. import pandas as pd filepath = 'dataset_37_diabetes.csv' csv = pd.read_csv(filepath) csv 8개의 features로된 768개의 데이터를 확인할 수 있다. 문제와 데이터는 여기서 확인한다. http://www.dafit.me/question/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=2682894&t=board [DF906] 머신러닝을 통한 당뇨병 예측 : 다핏, 데이터사이언스 연습문제 🔥 문제 설명당뇨병에 영향을 주는 8가지 특징을 바탕으로, 머신..

<DAFIT> 05 Regular Expression 02 - 날짜

문제를 보니 날짜가 될 수 없는 데이터는 변하지 않고 올바른 날짜인 경우에만 REPLACEDATE로 치환하는 문제다. 날짜가 될 수 없는 조건은 다음과 같다. 1. month = 0이하 13이상 2. day = 0이하 32이상 * 2월의 경우 day = 0이하 30이상 정규표현식을 사용할 수 있는 파이썬 라이브러리 re를 추가한다. import re 테스트케이스는 다음과 같이 구성하였다. testcase = ["2019.02.30","2019.06.41","2019.13.30","2000.00.01","2019-06-06", "2019/06/06", "2019.06.06", "19.06.06", "6/6", "06/13", "06월 3일", "6월 23일"] 테스트케이스 중 날짜가 되지 않는 데이터만 골..

<DAFIT> 05 Regular Expression 01 - 전화번호

먼저 regular expression을 사용하기 위해서 python 라이브러리인 re를 사용한다. import re 시내 전화, 서울, 기타 지역 전화를 필터링 하기 위해 메타 문자(특별한 용도로 사용하기 위한 문자)를 사용하여 정규표현식을 만들어보자. 시내전화의 경우, 3~9로 시작하는 8자리 전화번호 이거나 XXX-XXXX으로 된 7자리 전화번호이다. 먼저 3~9로 시작해도되고 아니어도 되기때문에 첫문자가 3~9여도되고 아니어도 되고를 표현하는 것은 ^[3-9]?이다. ^는 []밖에 있을 때 처음이라는 의미이다. []안에 -로 묶인 값은 범주를 나타낸다. ex) [a-z] = a~z, [0-9] = 0~9 ?는 있어도 되고 없어도 된다를 나타내는 메타문자이다. 그 뒤 XXX-XXXX은 반드시 앞 번..

<DAFIT> 04 한국어 데이터 Tokenizer 02 - 형태소 분석기 라이브러리

데이터는 dafit에서 제공하는 html파일에서 다운로드 받을 수 있다. 링크를 들어가면 날짜별로 kowiki dump file을 다운로드 받을 수 있다. 문장 형태의 데이터가 있어야 형태소 분석을 했을 때 만족스러운 결과가 나타날 것이라고 생각했다. 그래서 아래 abstract가 있는 xml파일을 사용하기로 함. (파일을 빨리 열어서 구조를 봐야하기 때문에 사이즈가 좀 작은 파일을 선택한 것도 이유 중 하나) 뭐 이런식으로 생겼다. abstract 태그 데이터만 추출해서 형태소 분석을 하자. from konlpy.tag import Kkma import xml.etree.ElementTree as elemTree 사용할 라이브러리를 임포트한다. xml을 다뤄야하기 때문에 python 표준 라이브러리인 ..

<DAFIT> 04 한국어 데이터 Tokenizer 01 - 형태소 분석기 라이브러리

가장 먼저 해야할 일 "형태소 분석기 라이브러리"를 설치하자. 그냥 구글에 형태소 분석기 라이브러리 검색하니까 나온 라이브러리 https://konlpy-ko.readthedocs.io/ KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.4.3 documentation KoNLPy: 파이썬 한국어 NLP KoNLPy(“코엔엘파이”라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다. 설치법은 이 곳을 참고해주세요. NLP를 처음 시작하시는 분들은 시작하기 에서 가볍게 기본 지식을 습득할 수 있으며, KoNLPy의 사용법 가이드는 사용하기, 각 모듈의 상세사항은 API 문서에서 보실 수 있습니다. >>> from konlpy.tag import Kkma >>> from konlpy.utils ..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 04 - 오디오 데이터의 이해과정 문제

이번에는 03에서 그렸던 파형을 normalization한 데이터로 다시 한번 그려서 비교하고 차이점을 서술하는 문제이다. import wave import numpy as np import matplotlib.pyplot as plt filepath = './train/bed/004ae714_nohash_1.wav' sound = wave.open(filepath) 파일은 004ae714_nohash_1.wave를 사용했다. signal = sound.readframes(-1) signal = np.fromstring(signal, 'Int16') fs = sound.getframerate() Time=np.linspace(0, len(signal)/fs, num=len(signal)) print(si..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 03 - 오디오 데이터의 이해과정 문제

지난 오디오 데이터의 이해에 이어서 이번에도 데이터를 이해해보는 과정이다. 문제는 raw data의 shape과 data를 출력해보고 출력한 data에 대한 파형정보를 그래프로 표현해보는 것. 지난 포스팅에서 waveform을 그려봤기때문에 쉽게 해결할 수 있을 것 같다. librosa 대신 wave 라이브러리를 사용해봤다. 코드는 이곳을 참고하였다. 전 포스팅에서 사용했던 코드에다 아래코드를 추가한다. import wave wav = wave.open(path+'/'+folder_list[0]+'/'+fname[0], mode='rb') signal = wav.readframes(-1) # 최대 n 프레임의 오디오를 bytes 객체로 읽고 반환합니다. signal = np.fromstring(signa..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 02 - 오디오 데이터의 이해 과정 문제

일단 오디오 데이터가 가지고 있는 정보를 서술하기 전에 신호처리 알못이라서 예제에 나와있는 단어들부터 파악하려고 한다. Sampling Rate는 sampling frequency라고도 하고 이산적인 신호를 만들기 위해 연속적 신호에서 얻어진 단위시간 당 샘플링 횟수를 말한다. 단위는 헤르츠이다. (음.. 디지털 신호로 만들기 위해서 아날로그 신호에서 초당 샘플링한 횟수를 sampling rate라고 생각해도 되는걸까..?) bit depth는 음의 세기? 강도를 얼마나 세세하게 표현할 수 있냐라는것. 이 사이트를 보니 sample rate와 bit depth에 대해 잘 이해되게 설명해놨다. https://logicstar.kr/bbs/board.php?bo_table=gt_3_8&wr_id=23&sst..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 - 01 데이터 셋 준비 과정

지난 데이터 전처리(DF901), 딥러닝으로 은하 분류(DF902)에 이어서 음성 단어 분류기 알고리즘을 만들어보자. 음성 신호 처리 같은건 거의 몰라서,, 구글링을 굉장히 많이 할 것 같다^^;; 요구하는 것은 다음과 같다. 원래 데이터 셋은 이렇게 바로 폴더들만 들어있다. 이것을 각각 train, valid, test 폴더로 나눠서 이동시켜줘야한다. 1. test, valid, train 폴더를 만든다. 2. txt 파일을 읽어서 음원 파일 경로를 배열로 분리한다. 3. test,valid,train 폴더 안에 음원 파일이 속한 폴더가 없으면 만든다. 4. shutil.move() 사용해서 음원 파일을 이동시킨다.