분류 전체보기 41

데이터 전처리 - PySpark에서 SQL 사용하기

저번 포스트에서 설명했듯이 이번 프로젝트에서는 배구 선수들의 능력치를 통해 팀 별 경기에서 어떤 팀이 승리할지를 예측하는 모델을 만들 것이다. 그러기 위해서는 선수 능력치를 판단할 수 있는 지표가 필요한데, 이전에 모았던 단순 데이터로는 한 눈에 파악하기 어렵다. 현재 데이터의 컬럼에는 이름, 소속 팀, 포지션, 총 점수 외에도 공격 시도, 공격 성공, 리시브 시도, 리시브 정확, 리시브 실패, 서브 성공, 세트 성공, 블로킹 성공, 디그 성공 이 있다. 이 중 공격 지표로 사용할 수 있는 공격 성공률과 수비 지표로 사용할 수 있는 리시브 효율을 구하고, 참여한 세트 수를 통해 세트당 서브, 세트, 블로킹, 디그 개수를 구해서 새롭게 데이터를 만들 것이다. 위의 내용으로 데이터 전처리를 해 볼 텐데, 어..

프로젝트 설명 & 데이터 수집 (웹 크롤링), 저장 - 선수 데이터

새롭게 시작하는 프로젝트는 스포츠 데이터 분석 프로젝트로, 스포츠 중 여자배구의 데이터를 분석해보려고 한다. 프로젝트의 큰 목표는 선수들의 경기 기록 데이터를 통해 능력치를 구하고, 어떤 두 팀이 경기를 치른다고 가정할 때 포지션 별로 선수를 지정하면 어느 팀이 승리할지 예측하는 것이다. 프로젝트의 진행 과정을 담을 것이기 때문에 배구의 자세한 룰 설명은 생략하도록 하겠다. 선수의 경기 기록 데이터에는 크게 공격, 서브, 세트, 블로킹, 리시브, 디그 내용이 포함되어 있다. 각 포지션 별로 중요하게 여겨지는 항목이 조금씩은 다르지만 위 항목들을 토대로 선수의 역량을 측정한다. 데이터를 분석하기 위해서 가장 먼저 해야 할 일은 분석할 데이터를 마련하는 일이다. 데이터를 마련하려면 여러 방법이 있겠지만 이미..

프론트와 연결하기 (3) - 이미지 로드 시 404 에러 해결

프론트엔드인 리액트와 백엔드인 장고를 연동할 때 리액트의 build 배포 파일들을 이용해보려고 프로젝트 초기부터 여러 문서들을 찾아보며 고군분투 했었다. 그랬다가 결국 그 방법을 사용하는 것은 멈춰두고 기능들을 먼저 구현하다가 얼마 전에 프로젝트를 모두 끝내고 서버에 등록하려고 다시 시도해보던 상황이었다. ( 자세한 과정은 이전 글 참고 > https://edorrr.tistory.com/18 ) 프로젝트 완성 당시에 배포 버전에서 발생하던 오류는 크게 두 가지였다. [1] 글쓰기를 마친 후 띄우는 서평 확인 페이지와 서평 목록을 볼 수 있는 서평 공간 페이지가 흰 창으로 뜨는 오류 [2] 웹페이지에서 사용하는 이미지 파일들의 404 not found 오류 먼저 첫 번째 오류는 프론트엔드 담당 팀원이 해..

[ML] 회귀 알고리즘 : 선형 회귀 (1)

머신러닝 알고리즘에는 지도 학습 알고리즘과 비지도 학습 알고리즘이 있다. 지도 학습은 훈련을 위한 데이터와 정답이 필요하고, 비지도 학습은 정답이 없고 대신 비슷한 데이터끼리 묶는다. 지도 학습은 또 다시 분류와 회귀로 나뉘는데 데이터를 여러 옵션 중 하나로 선택/결정하는 것이 분류, 데이터를 통해 임의의 어떤 값을 예측하는 것이 회귀이다. 여러 회귀 알고리즘 중 이번 포스트에서는 선형 회귀 알고리즘에 대해 다뤄보려고 한다. 선형 회귀는 대표적인 회귀 알고리즘으로, 여러 곳에서 널리 사용되고 있다. 단어 그대로 데이터의 특성이 하나인 경우 특성을 가장 잘 나타낼 수 있는 어떠한 직선에 대해 학습하는 알고리즘이다. (전처리한)데이터를 그래프로 나타내면 그 데이터의 특성이 하나일 때 분포에 따라 어떠한 선이..

스터디/ML, DL 2022.03.03

[GCP] 구글 클라우드 플랫폼으로 서버 구축하기 (1) - 인스턴스 생성

프로젝트 개발이 모두 끝난 후 그 프로젝트의 마지막 단계는 단연코 서버에 올려서 잘 작동하는지 확인하는 것일 것이다. 마침 얼마 전에 프로젝트 개발이 모두 끝나서 서버에 올려보려는 중인데 여러 서버 플랫폼이 있지만, GCP가 무료 체험판 등 무료로 사용할 수 있는 방법들이 있어서 우리는 Google Cloud Platform(이하 GCP)를 이용해서 서버에 올려보려고 한다. 먼저 GCP 콘솔에 접속한다. https://console.cloud.google.com/ 그 다음으로는 프로젝트를 생성한다. 혹시 이미 프로젝트를 만들어서 대시보드가 뜬다면 상단의 프로젝트 이름을 클릭해 뜨는 창에 프로젝트를 만들 수 있는 버튼이 있다. 프로젝트 이름과 위치를 설정하고 '만들기' 버튼을 클릭한다. 프로젝트가 생성되면..

스터디/Web 2022.03.02

[Hadoop] 맵리듀스 - 분산 데이터 처리 프레임워크

좋은 분산 시스템을 구축하기 위해서는 효율적인 입출력도 중요하지만 이것만으로는 충분하지 않다. YARN은 클러스터에 계산을 분산하고 HDFS에 보관된 데이터를 확장 가능하도록 처리하는 방법을 추상화해서 제공하는 것 뿐이다. 따라서 계산을 표현하는 방법이 중요한데, 하둡이 가장 처음 지원한 데이터 처리 모델은 맵리듀스이다. 맵리듀스는 구글이 발표했고 많은 문제를 해결할 수 있으며 단순한 모델에 기반을 둔다. 덕분에 분산 시스템을 잘 몰라도 인프라 구축을 고민하지 않고 맵리듀스를 통해 문제를 해결할 수 있다. 맵리듀스는 병렬 처리 모델이고 문제를 맵 단계, 셔플 단계, 리듀스 단계로 나눠서 수행한다. HDFS의 데이터 지역성과 YARN의 작업 및 리소스 관리 기능이 이 세 단계 계산이 효율적이도록 돕는다. ..

[PySpark] Jupyter Notebook에서 PySpark 사용하기

저번 포스트에서는 windows10 에 스파크를 설치해보았다.다만 cmd 창에서 모든 작업을 진행하기에는 불편함이 있어서 (작업 명령어 등 내용 저장에 불편)앞으로는 쥬피터 노트북으로 작업하기 위해 작업환경을 세팅하고 테스트로 데이터를 불러와보았다.쥬피터 노트북과 아나콘다는 이미 설치되어 있다고 가정한다. 데이터를 저장하고 관리하기 위해 하둡을 함께 사용한다. (하둡 설치 방법은 이전 포스트 참고)즉, 이번 포스트에서 다루는 내용은 스파크와 하둡을 연결하는 내용이라고 볼 수 있겠다.   (1) 하둡 실행cmd 창을 열어 하둡 설치파일이 있는 디렉토리로 이동하고 다음 명령어들을 차례로 실행한다.이 때 'hdfs namenode -format' 명령은 할 때마다 실행하지 않고 맨 처음에만 실행해도 되는 것 ..

[Hadoop] YARN - 리소스 관리자와 스케줄러

저번에는 하둡이 무엇인지, 그리고 하둡의 기본 파일 시스템인 분산 파일 시스템에 대해 공부했다. 이번에는 이어서 하둡의 리소스 관리자와 스케줄러에 대해 공부해보려고 한다. 분산 시스템에서는 스케줄링과 리소스 관리 기능을 핵심 요소로 가지고 있는데, 하둡에서는 계산 리소스를 할당하고 사용자 애플리케이션을 스케줄링하는 시스템으로 YARN 을 사용한다. YARN (Yet Another Resource Negotiator) 은 스케줄링과 리소스 관리를 담당하여 데이터의 지역성을 극대화하고 계산량이 많은 애플리케이션이 자원을 독점하지 않도록 제어한다. 또한 교체가 가능한 스케줄링 시스템을 지원하고 사용자당 리소스 제한, 작업 대기열당 리소스 할당량 등의 공용 리소스 시스템 스케줄링에 필요한 환경 설정을 스케줄러에..

[Hadoop] 하둡 설치하고 확인해보기

스파크를 사용할 때 저장소로 하둡을 사용하기 위해 하둡을 설치해보겠다. 하둡 설치는 다음 과정을 따른다. (1) 하둡, 자바 다운 https://hadoop.apache.org/releases.html 위 링크에서 받으려는 하둡 버전을 확인하고 binary 를 선택해 압축파일을 다운받는다. 압축파일은 ~.tar.gz 확장자 이름을 가지고 있고 나는 3.2.2 버전을 받았다. (스파크에 포함된 하둡 버전이 3.2 버전이다.) 자바(jdk)도 다운받아야 하지만 자바는 이미 있기 때문에 해당 과정은 생략한다. (나의 자바 버전 13) (2) 환경변수 설정 스파크 설치 때와 마찬가지로 환경변수를 설정한다. (이전 게시글에서 자세히 다뤘으므로 여기서는 패스한다.) 다만 이전에 설정했던 HADOOP_HOME 을 편..

서평 작성 기능을 마치며

오늘로서 '고양이와 책을' 프로젝트의 서평 작성 관련 기능을 모두 마쳤다! 로그인, 회원 정보, 검색, 서평 작성 의 기능들을 가진 프로젝트였는데 그 중 나는 서평 작성 기능을 맡았고 서평의 CRUD, 즉 작성하고(Create) 불러오고(Read) 수정하고(Update) 삭제하는(Delete) 기능을 모두 구현했다. 장고 프레임워크를 처음 사용해보는거라 잘 할 수 있을까 하는 마음도 들었지만 모르는만큼 열심히 공부하며 프로젝트를 진행하고 나니 끝내고 나서는 뿌듯한 마음이 남는다. 한 달 반의 길다면 길고, 짧다면 짧은 시간동안 프로젝트를 진행하면서 (글은 성공한 경우만 작성하다보니 내용이 많지는 않지만) 각종 시행착오와 오류들을 겪으면서 장고와 리액트에 관해 한 발짝 나아갈 수 있었다. 프론트엔드 툴인 ..