반응형

빅데이터 | 머신러닝 | 딥러닝 17

[pandas/Selenium/BeautifulSoup4] 야구 시즌 기록 데이터(STATIZ) 웹 크롤링 후 DataFrame 만들기. DataFrame을 csv로 만들고 csv파일 로컬에 저장하기! (feat. Colab)

Jsoup을 이용한 웹 크롤링은 tosuccess.tistory.com/119 을 참고하세요! 공공 데이터 XML 크롤링은 tosuccess.tistory.com/150 을 참고하세요! 오늘은 STATIZ라는 스포츠 기록 사이트에서 야구(투수)에 관련된 랭킹을 2011년도부터 2020년까지의 데이터를 크롤링하여 DataFrame으로 만들고 csv로 변환시켜 로컬에 저장하는 것까지 해보겠다. 내가 원하는건 모든 데이터를 원하지만 옵션에서 출력할 수 있는 개수는 100이 제한되어있다. 웹을 조금 다뤄본 사람이라면, www.statiz.co.kr/stat.php?mid=stat&re=1&ys=2011&ye=2020&se=0&te=&tm=&ty=0&qu=auto&po=0&as=&ae=&hi=&un=&pl=&da..

[pandas] 공공 데이터 XML 크롤링을 통해 dataFrame으로 만들어보기

공공 API를 통해 얻는 XML 형태의 파일은 여러 가지 방법으로 크롤링할 수 있다. 이 글에서 알려드릴 내용은 XML로 이루어진 페이지를 xmltodict 라이브러리를 이용해 API를 파싱 하는 방법에 대해 다루려고 한다. 공공 데이터 API을 발급받는 과정은 생략하고, url과 key값, 원하는 데이터 범위를 설정하는 방식으로 파싱 하는 방법이다. In [1]: !pip install xmltodict import pandas as pd import requests import xmltodict import time Collecting xmltodict Downloading https://files.pythonhosted.org/packages/28/fd/30d5c1d3ac29ce229f6bdc40b..

[딥러닝 기초] recurrent neural network (using LSTM, keras)

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] Recurrent Neural Network(RNN) 필요한 클래스 임포트 - sequence : 이 예제에서는 imdb라는 영화 리뷰 데이터를 활용한다. 리뷰에 나온 단어들을 확인할 때 리뷰마다 글자 수는 다를 수밖에 없다. sequence는 단어들이 들어가 있는 데이터의 길이를 통일하게 만들어준다. - Embedding : 원-핫 인코딩으로 전처리된 데이터를 쓰게 되면 입력 데이터 크기와 사용할 수 있는 단어의 수가 제한된다는 문제가 있다. 또 원-핫 인코딩은 단어 사이에 관련이 없다고 가정할 때 사용한다. 즉, 단어를 고정된 길이의 실수 벡터로 만드는 임베딩 방식을 통해 벡터 사이의 거리(값의 차이)로 단어..

[딥러닝 기초] Convolution Neuron Network for keras

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] Convolution Neuron Network(CNN) 필요한 클래스 임포트 - tensorflow.keras.layers에 있는 Conv2D, MaxPooling2D, Flatten, Dense를 import해준다. 합성곱층 쌓기 - Conv2D 클래스의 첫 번째 매개변수는 합성곱 커널의 개수. - 두 번째 매개변수는 합성곱 커널의 크기(높이와 너비)를 "튜플"형태로 전달. - 세 번째는 활성화 함수. - 네 번째, 다섯 번째는 각각 패딩, 입력 값 shape이다. 풀링층 쌓기 - 첫 번째 매개변수는 풀링의 높이오 너비를 나타내는 "튜플" - 두 번째 매개변수는 스트라이드, 기본 값은 풀링의 크기 - 세 번째..

[딥러닝 기초] Convolution Neuron Network 의류분류기 만들어보기

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] Convolution Neuron Network(CNN) 합성곱 연산이란 ? 원본 배열과 특정배열(reversed)을 자릿수마다 곱하고 더한 결과가 새로운 배열의 하나의 원소 값으로 만드는 연산 * 합성곱에서는 교차상관을 사용한다 why? -> 우리는 가중치를 초기화할 때 가중치 값을 랜덤 하게 주기 때문에 reverse는 무의미하다. 패딩과 스트라이드 패딩 Valid - 원본 배열의 원소가 합성곱 연산에 참여하는 정도가 다름(원본 배열 0번째 원소가 합성곱 연산에 참여하는 횟수는 1회) full - 원본 배열의 원소가 모두 합성곱 연산에 골고루 참여하기 위해 배열 양 끝에 빈 원소를 적절히 추가한다. same ..

[딥러닝 기초] 다층 신경망을 통해 의류분류기 만들어보기(2) (using keras)

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] 모델 이해하기 Sequential - 케라스는 인공신경망 모델을 만들기 위한 Sequential 클래스를 제공함. Dense - 모델에 포함된 완전 연결층 Sequential 모델에 층 추가하기 - model = Sequential([Dense(...)..]) - model.add(dense) input_shape=(???,) - 가중치의 shape을 결정한다. X값의 열의 개수가 784(벡터)이므로 예제에서는 784로 맞혀준다. Densse 클래스 매개변수 unit - 뉴런 개수를 매개변수로 지정. activation - 시그모이드, 소프트맥스 같은 경우는 activation='sigmoid or softmax..

[딥러닝 기초] 다층 신경망을 통해 의류분류기 만들어보기

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] bincount : 배열에 있는 정수값의 등장 횟수를 세어 정수값에 해당하는 인덱스 위치에 저장 reshape : 사진의 정보는 2차원으로 되어있기 때문에 (-1, "차원을 합친 길이")로 변환 to_categorical : 클래스의 구별을 위해 정수값으로 되있는 값들을 원-핫 인코딩 방식으로 변환 In [1]: class MultiClassNetwork: def __init__(self, units=10, batch_size=32, learning_rate =0.1, l1=0,l2=0): self.units = units #은닉층의 뉴런개수 self.batch_size = batch_size self.w1 = ..

[딥러닝 기초] 다층 신경망 (MLPClassifier)

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] 배치 경사 하강법 - 확률적 경사 하강법보다 많은 양을 가지고 손실함수의 최솟값을 찾기 때문에 찾는 과정이 더욱 안정적이다. - 대신 가중치를 1번 업데이터할 때사용되는 데이터 개수가 많으므로 계산 비용이 많이든다. 점 곱(dot product, 스칼라 곱) : 두 벡터를 곱하여 합을 구하는 계산. 다층 신경망 - 뉴런이 2개 이상 있는 신경망으로 은닉층을 통과한 값들은 다시 출력층으로 모임. - 활성화 함수는 층마다 다를 수 있지만 한 층에서는 같아야 한다. - 모든 뉴런이 연결되어 있으면 완전 연결 신경망이라고 한다. (add. 순환 신경망, 합성곱 신경망) Sklearn의 MLP모델 사용하여 구현하기 hid..

[pandas] 코로나 수치 예측하기 (feat. Linear Regression)

isna() : 사용할 수 없는 값 (null) notna() : 사용할 수 있는 값 (not null) astype() : 데이터 타입 변환 (ex Int65) loc[] : 행/열 인덱스 접근 np.histogram : 도수 분포표를 그릴 수 있게 해주는 함수 bins=나눌 구간 수, count와 나눈 구간들을 반환한다. count는 나눈 구간의 전체의 비율(?)을 반환한다. reshape(-1,1) : range를 1열로 만드는 함수, 즉 -1은 열을 1개로 두었을 때 나올 행 수를 추정한다. In [1]: #importing the required packages and csv file import pandas as pd import numpy as np import seaborn as sns i..

[딥러닝 기초] k-fold 교차 검증(cross validation)

[이 글은 "Do it 딥러닝 입문" 책을 보고 공부한 내용을 복습하고자 정리한 글입니다.] 목표 - 교차 검증을 이해한다. 교차 검증이란? 전체 데이트 세트를 8:2로 나눈 다음 8에 해당되는 훈련 세트를 다시 5개의 작은 덩어리로 나눠 1개씩 검증 세트를 만들어 훈련시키는 방법이다. 교차 검증 과정 훈련 세트를 k개의 폴드로 나눔. 첫 번째 폴드를 검증 세트로 사용하고 나머지 폴드(k-1)를 훈련세트로 사용함. 모델을 훈련한 뒤 검증 세트로 평가. 차례대로 다음 폴드를 검증 세트로 사용하여 반복. 최종 성능을 계산. 교차 검증에서 훈련 데이터의 표준화 전처리를 폴드를 나눈 후에 하는 이유? - 훈련을 하기 전에 데이터 전처리를 하고 폴드로 나눈 다면 검증 폴드의 정보를 누설하게 되어 성능개선이 안될 ..

반응형