본문 바로가기

Tech

(556)
[GCP] Compute Engine Compute Engine 이란? : GCP에서 제공하가는 가장머신(VM) 서비스이다. 즉, 네트워크에 연결된 가상서버를 제공. Compute Engine의 특징들에 대해서 하나씩 부분 별로 살펴보자. 1. 다양한 인스턴트 구성 및 이미지를 제공 - 마이크로~vCPU 뿐만아니라 사전에 정의된 다양한 인스턴스, 그리고 임의로 설정할 수 있는 커스텀 머신 유형도 제공 게다가 영구디스크 레퍼지토리를 HDD or SDD 형태로 제공한다. - VM인스턴스로 리눅스 및 윈도우 서버용 공개 이미지 뿐만 아니라 기존 시스템에서 가져올 수 있는 비공개 커스텀 이미지도 실 행 가능. - 프로젝트에서 인스턴스를 만들 때 해당 인스턴스의 영역 운영체제 및 머신 유형 등을 지정 가능 => 머신유형에 대해서 알아보자. a. 사전..
[GCP] Cloud IAM(Identity and Access Management) Cloud IAM : 구글 클라우드 서비스의 ID 및 액세스를 관리해주도록 하는 서비스. 즉, 누가(ID) 어떤 리소스(GCP서비스)에 대한 어떤 액세스 권한(Role)을 갖는지 제어하도록 해주는 것 Cloud IAM에서 정책(policy)를 만들면 IAM에서 사용하는 ID별로 역할을 주는데, 이것은 GCP 내의 리소스 별로 개별 설정이 가능하다. 1. 구글 계정 - 개별 사용자 계정, ID는 모든 이메일 주소로 가능. 2. 서비스 계정 - 애플리케이션 또는 가상 머신 속한 계정(사용자 X), 코드를 실행하는 계정을 지정 - 주요 특징 => ID로 사용되며 서비스 계정에 역할을 부여하고 리소스에 엑세스 가능 리소스로 사용되며 사용자에게 해당 서비스 계정에 엑세스할 권한 부여 가능 - 서비스 계정 키 =>..
[Python웹크롤링] 웹크롤링시 User-Agent의 사용 웹크롤링에 대해서 배우다 보면 우리 사람이 컴퓨터를 키고 웹브라우저에 접속하는 프로세스에 대해서 감을 익히게 된다. 개인적으로 이런 느낌을 받은 적은 바로 User-Agent 개념에 대해서 배우고 난 뒤인 것 같다. 물론 특정 웹마다 다르겠지만 어떤 웹브라우저는 get, post 방식을 날리는 상대방이 컴퓨터인걸 알면 해당 웹에 접속하는 것을 차단하는 경우가 있다. 우리는 이를 방지하기 위해서 " 나 컴퓨터아니고 사람이야 ! " 라고 사람인 ' 척 ' 하기 위해 User-Agent를 사용한다고 생각하면 되겠다. 본격적으로 내가 해당 개념을 배울 때 작성했던 코드를 살펴보자. User-Agent 클래스는 보통 fake_useragent라는 패키지에서 import를 시킨다.. 패키지 이름이 ' 가짜 유저 '..
[Python웹크롤링] requests 와 lxml 을 사용한 스크래핑 이번 복습 컨텐츠는 lxml 패키지를 이용해서 특정 데이터를 갖고오는 내용에 대해 다룰 것이다. 가장 우선적으로 url에 요청을 하기 위해서 requests 패키지를 import한다. 그리고 lxml.html 패키지 중 fromstring(문자열로 저장하는 class)와 tostring 클래스를 import 한다. 왜냐하면 html 구조를 갖고오는 데이터는 문자열로 저장되지 않기 때문이다. 우선 스크래핑을 실행하는 데 결정적 역할을 하는 main 함수에 대해 정의해 보았다. 가장 우선적으로 해주어야 하는 일은 세션을 활성화시키는 것이다. ( #세션이란? 해당 url에 계속 흐름이 끊기지 않고 접속해 있는 것을 말한다 ) 그리고 get 함수를 이용해 해당 URL을 요청한다 ( 여기서 get 방식을 이용했는..
[GCP] Introducing Google Cloud Platform 우선 이 강좌는 [ Compute, Storage, Big data, Machine Learning ] 중에 Compute와 Storage에 포커스를 둔다고 한다. ▶ Cloud Computing 이란? On-demand self-service : 필요할 때 언제든지 computing 리소스들을 얻을 수 있다. Broad Network Access : 어디에서나 이 리소스들에 접근 가능 Resource pooling : 공급자들이 고객들에게 리소스들을 분배(공유) 가능 Rapid elasticity(탄력성) : 리소스가 더 많이 필요하면 더 많이, 빨리 얻을 수 있고, 덜 필요하면 scale back 가능 Measured service : 사용자가 쓴 만큼만 지불하면 끝. - IaaS(Infrastruc..
[Python] 패키지, 라이브러리, 모듈... 넌 진짜 알아? 최근에 이쪽 분야를 공부하면서 가장 힘들고 고난스러운 점은 용어 자체가 이해하기 어렵다는 것이다. 용어가 외래어 처럼 되있을 뿐만 아니라 사전적 의미에 대한 명확한 정의도 없고 한 특정 키워드에 대한 개념설명을 읽다가도 용어에 대해 인지를 못해서 c로 시작하는 욕을 한적이 한 두번이 아닌 거 같다...그러는 차원에서 작은 컨텐츠로 혼동할 수 있는 용어에 대해서 간단하게 정의해 보려고 한다. 먼저 수식으로 개념에 대한 종속 관계부터 알아보자. 패키지 = 라이브러리 = 모듈의 합 = 클래스의 합 = 객체(함수들)의 합 예시를 통해서 이해하는게 가장 빠를 것이다. 우선 주석처리를 한 것을 읽고 이해하면 된다. 그리고 난 이번기회를 통해서 새롭게 알게 된 사실이였는데 from ~ import 구문을 쓸 때 . ..
[Python] Class와 Object 개념과 이해 파이썬을 처음 접할 때는 그렇게 어렵다고 느껴지지 않았지만 클래스와 객체 단계만 다가오면 머리가 하얘지고 무슨 말인지 도통 몰랐다.. 심지어 패스트캠퍼스의 강의를 들었음에도 불구하고.... 그런데 코딩 유투버를 보다가 '워니' 라는 사람의 영상을 접하게 되었고 설명하는 방식이 이해하기 쉬운 것 같아 인상깊었던 와중에 1시간 분량의 파이썬 정복기라는 엑기스 영상을 올린걸 보게 되었다. 그리고 시청 후 소감은 정말 설명을 잘해주셨고 드디어 클래스와 객체에 대해서 이해가 많이 된 느낌을 받았다. 하지만 이 느낌도 곧 까먹게 될 것 같다... 사라지기 전에 빨리 이제 복습해보자! 우선 클래스 속에 객체가 있다고 볼 수 있겠다. class를 정의해주고 그 안에 임의의 함수를 만들어 준다. 그리고 __init__의..
[Python웹크롤링] urllib 모듈로 image, html 다운로드 12월 말 종강 후 부터 우리의 자랑스러운 DSC SCH Lead인 나단이가 패스트캠퍼스 강의를 빌려주어서 파이썬 문법과 웹 크롤링에 대한 강의를 들어왔다. 그 중에 데이터를 수집하기 위해서는 웹크롤링이 필수적이라고 교수님께서 말씀하셔서 웹 크롤링에 대한 강의를 듣고 이후 복습하고 머리에 저장시키기 위해 블로그에 쓰고자 한다. 우선 현재 웹크롤링 진도가 Selenium 모듈을 쓰는 단계까지 진행되었지만 다시 초심부터 돌아가자는 의미에서 처음부터 진도를 순차적으로 진행하면서 글을 작성하려 한다. 그럼 한 번 복습해보자! 우선 내가 갖고오고자 하는 URL에서 제공하는 이미지와 HTML을 갖고오기 위해선 해당 URL에다가 요청(request)을 해야 한다. (쉽게 일상적인 예시를 들어본다면, 대학교에서 수업을..
[Crawling공부] #1 배운내용 정리 1. 크롤링 : 규칙적으로 업데이트 될 때마다 방문해서 데이터를 긁어옴 2. 스크래핑 : 내가 원하는 ex) 뉴스의 10개를 가져올거야 3. HTML은 태그로 구성되어 있다 4. 개발자 도구 : 데이터를 크롤링 할 수 있도록 도와주는 도구 CSS Selector 나 xpath 뭐 쓰는지 상관없긴 함! 도구->개발자도구->elements 와 network탭이 젤 중요 network은 처리하는 과정을 보여주고 있음 1. 대상 웹 페이지 조건 확인 - robots.txt 라는 파일로 저장되 있어야 함! 2. 크롤러 분류 - 내가 가져올 정보의 상태 유무, 자바스크립트 유무 3. ★request 요청시 주의할 점 -서버 부하 고려!!(상대 사이트에 대한 예의를 지키자!) 4. 특정 콘텐츠 저작권 문제 5. 페이..
[Python공부] 12.19 - 1일차_몰랐던 기본문법 1. + 를 이용해서 문자열을 결합 가능 2. * 를 이용해 문자열 복제가능 ex) 'a man ' *3 하면 a man a man a man 출력 3. 문자열은 불변하기 때문에 해당 인덱스 번호에 새로운 문자를 할당할 수 없음! -> 대신 replace함수사용 4. 슬라이스 ㄱ. [ : ] 처음부터 끝까지 시퀀스 출력 ㄴ. [start : ] start부터 끝까지 시퀀스 출력 ㄷ. [ : end ] 처음부터 end-1 까지 시퀀스 출력 ㄹ. [start : end ] start부터 end-1 까지 시퀀스 출력 ㅁ. [start : end : step ] start부터 end-1까지 step만큼 문자를 건너뛰면서 출력 5. split 함수 -> 변수명.split('구분기준') 으로 나눔 만약 '구분기준'..
[ML] SVM(Support Vector Machine) is apllied to Titanic_Data 이번엔 타이타닉 데이터를 SVM에 적용해보려고 한다. 우선 SVM에 대해서 살펴보자 SVM은 Support Vector Machine의 준말이다. SVM은 두 개의 매개변수( Cost, gamma )가 사용자에 의해 세팅되어야 한다! 이 두개의 매개변수를 grid search라는 경험적인 방법에 의해서만 선택한다. 여기서 grid search란 그림 1과 같이 매개변수들의 여러 조합을 테스트해서 가장 좋은 성능을 내는 매개변수를 찾아내는 것이다. 1. Linear(선형) SVM - 사용자가 설정해야하는 매개변수 = Cost - 최적의 선형 결정 경계(=분리 초평면) 찾는 알고리즘 - margin = 두 데이터 군과 결정 경계간의 떨어져 있는 정도 -> SVM의 목표는 이 margin이 가장 큰 결정 경계..
[ML적용Case] Titanic Data applied to Decision Tree model 데이터를 갖고 의사결정 나무 모델에 적용하는 프로세스는 크게 다음과 같다 위 그림에서 보는 것처럼 첫번째, 문제를 정의하고 훈련 데이터를 수집을 한다 두번째, 데이터를 추출을 한다, 여기서 데이터 추출이란, Data의 여러가지 features 중에서 중요한 feature을 뽑아내어 나무의 결정 기준을 설정한다. 이 때, 기준 설정은 가장 많은 데이터를 나가떨어지게(?)하는 feature을 가장 먼저 설정하는 것이 효율적이다. 또한 엔트로피가 낮도록(clean~) 설정을 해야 한다(=정보획득이 높아져아한다!) #정보획득에 대한 용어는 의사결정나무 이론에 대한 정리글을 참고하자! 세번째, 모델을 실행시킨다. 네번째, test데이터로 모델 성능을 시험해본다. 위는 Decision tree 모델에 input으로..
[ML] 머신러닝 모델: Decision Tree(의사결정나무) 머신러닝의 다양한 모델들 중 하나인 Decision Tree(의사결정 나무)에 대해서 알아보는 시간을 가졌다. 최근 DSC 동아리에서 시행하는 프로젝트로 다양한 머신러닝 용어와 모델들에 대해서 알게 되어 대학교에 들어와서 가장 생산적인 활동이 아니었나 싶다...흑 어찌 되었던 우선 많고 어려운 용어를 다 배제시키고 일상적인 단어로 표현한다면 '의사결정 나무 = 스무고개 놀이 ' 라고 보면 될 거 같다. 이래도 이 해가 어렵다면 밑에 그림을 보고 이해해보자! 의사결정나무는 분류와 회귀 방법에 모두 적용이 가능하다! 먼저 분류 과정에 대해 말하자면, 새로운 데이터가 특정 teriminal node에 속한다는 정보를 확인하고 해당 terminal node에서 가장 빈도가 높은 범주에 새로운 데이터를 분류! 시..
[용어 정리] ML/DL의 난제인 'Overfitting' 과 해결책인 'Validation' 요즘 머신러닝, 딥러닝 분야를 학습하다 보면 물론 수학적인 수식이나 공식이 어렵기도 하지만 한국어로 풀어쓴 설명에서 막히는 원인이 용어에 대한 개념숙지가 안되어 있는게 문제라고 생각한다. 따라서 용어를 순차적으로 학습해나가고 숙지하는 것이 또 하나의 숙제가 될 것 같다. 먼저 머신러닝의 개념과 난제부터 살펴보자. 머신러닝이라는 기법을 통해서 학습데이터로부터 모델을 찾아내고 실제 현장의 데이터를 그 모델에 input으로 넣었을 때 output을 찾는 것을 추론(inference) 라고 한다. 이렇게 학습 데이터로부터 열심히 머신러닝 모델을 구하고 실제 데이터를 입력했을 때 제대로 된 결과가 나오지 않을 수 있다. 그 이유는 학습데이터는 실제데이터의 부분집합이기 때문이다. 머신러닝과 딥러닝의 문제는 여기에서..
[Neural Network] ANN(인공신경망) ANN(Artificial Neural Networks)란, 인간의 뇌를 본따서 입력-은닉-출력 총 3가지 layer로 구성되 있다. ​ Perceptron과는 달리 다층으로 구성되어 있다! -> 차이점! 그래서 ANN= Multilayer Perceptron이라고도 부른다! ​ 이제 구체적으로 퍼셉트론과 ANN의 차이에 대해서 알아보겠다. 1) Layer 우선 layer 갯수에서 차이가 있다. 퍼셉트론은 앞서 말했다시피 총 3개의 층(입력-중간-출력층) 으로 구성되어 있는 반면 ANN은 입력층,출력층이 있으나 그 사이에 1개이상의 히든레이여를 갖고 있다! 그래서 ANN이 Multi layer이자 다중 perceptron이라고 부른다! ​ 2)패턴 인지 중간층이 하나인 퍼셉트론은 선형패턴(예측할 수 있는..
Think whether ML/DL is applied to the selected data. 저번주부터 DSC 동아리에서 첫 팀 프로젝트로 ML 팀과 스팸메일 팀으로 나누어서 프로젝트를 시작했다. 나는 ML팀에 속하게 되었다. 구체적으로 ML팀에서 하기로 한 프로젝트는 자신이 좋아하고 선호하는 데이터를 Kaggle과 같은 사이트에서 찾아내어 내가 선택한 데이터가 ML의 어떤 학습에 어울리고 적용할 수 있고 심지어 더 나아가서 딥러닝에도 적용될 수 있을까 하는 것에 대해 고찰해보는 숙제를 해오기로 하였다. 그래서 난 데이터f 팀 프로젝트로 ML 팀과 스팸메일 팀으로 나누어서 프로젝트를 시작했다. 나는 ML팀에 속하게 되었다. 구체적으로 ML팀에서 하기로 한 프로젝트는 자신이 좋아하고 선호하는 데이터를 Kaggle과 같은 사이트에서 찾아내어 내가 선택한 데이터가 ML의 어떤 학습에 어울리고 적용할 ..