목록분류 전체보기 (82)
Dev log
고유값과 고유벡터에 대해서 많이 들어봤을 것이다. 그만큼 무척 중요하다고 모두들 이야기한다. 이번에 새롭게 공부하기 시작하면서 고유값과 고유벡터가 무엇인지, 왜 중요한지에 대해 정리해보려고 한다. 고유값, 고유벡터 대부분 벡터 x에 어떤 행렬 A를 곱하게 되면 벡터의 크기와 방향이 바뀌게 된다. 그러나 정방행렬에 정방행렬의 고유벡터를 곱하면 고유벡터의 방향이 바뀌지 않는다. 더 간단히 말하면 벡터x가 행렬 A의 고유벡터라면 바뀌지 않는다. 월래 정방행렬 A는 임의의 벡터 x과의 행렬연산으로 x의 위치나 방향을 전환 시키는 역활을 하는데, 이때 어떤 특정 벡터들은 A에 곱해져도위치나 방향이 바뀌어도 월래 자신과 평행하거나 동일한 값을 갖는다. 이러한 벡터들을 고유벡터라고 이야기 한다. 변화된 벡터 x의 크..
이제 2021년 된 새해 기념으로 나의 2020년 정리해볼까 한다. (일기처럼 줄줄 썻기 때문에 그냥 술술 읽고 가볍게 넘기면 된다) 2020년 3줄 요약 팀 이동 팀원들 절반이 퇴사하는 일 발생하며, 팀 이동됨 머신러닝 개발 1도 안함 급하게 REST API 만드는 일이 생겨 올해 절반을 API개발만 함. 대학원 합격 나 자신을 공부시키기 위해 스스로 대학원에 들어감. 누군가 2020년도는 나에게 어떤 해였는지 물어본다면, 정신적으로 정말 힘들었던 해라고 이야기 할 수 있다. 나는 3년동안 현재 회사를 다니며 정말 우리팀 사람들과 가족같이 지냈고 행복했었다. 내 첫 팀이였고, 내 첫 회사여서 더욱더 깊게 추억이 자리 잡았던 것 같다. 그러나 올해 우리팀의 절반정도가 퇴사했고 그로인해 정신적으로 힘들었다..
이제 3년차 머신러닝 개발자로 들어서고 있는 시점에 나는 내가 가지고 있는 역량이나 방향이 제대로 가고 있는지에 대해 또는 무엇을 더 공부해야 되는지에 대해 의문을 가졌다. 로드맵은 언제든 바뀔 수 있으므로 최신버전을 보고 싶다면 링크를 타고 확인하기를 바란다. 또한 공지에도 적어놨지만 모든 블로그의 글은 내 깃블로그에 먼저 업로드 되므로 티스토리보다 더 빠르게 글을 확인하고 싶다면 깃블로그를 참고하기를 바란다. Introduction Fundamentals Data Science Roadmap Machine Learning Roadmap Deep Learning Roadmap Data Engineer Roadmap Big Data Engineer Roadmap 정답이라는 보장은 못하지만 그래도 방향 잡..
회귀는 하나의 변수가 나머지 다른 변수들과의 선형적 관계를 갖는가의 여부를 분석하는 하나의 방법이디. 즉 하나의 종속변수와 독립변수 사이의 관계를 명시하는 것을 우리는 회귀라고 한다. 오늘은 회귀가 무엇인지와 구하는 방법에 대해 알아보겠다. 회귀 독립변수와 종속변수는 아래와 같다. - 독립 변수: 종속 변수의 영향을 주는 변수(평수, 학군) - 종속 변수: 서로 관계를 가지고 있는 변수들 중에서 다른 변수의 영향을 받는 변수 (집값) 회귀식은 y = ax + b 이며, 정말 간단하다. 회귀식을 이용하여 간단하게 예제 문제를 풀어보겠다. 1986년 1월 28일 미국의 스페이서 셔틀 챌린저호의 승무원 7명이 사망했다. 우주 왕복선이 발사 도중에 폭파해서 사망을 했기 때문이다. 폭파에 대한 원인 분석을 했는데..
파이썬에서의 클래스 생성자와 소멸자에 관해 알아보겠습니다. 생성자는 이름에서 알 수 있듯이 객체가 만들어질 때 호출되는 함수를 생성자라고 이야기 하며, 객체가 사라질 때 호출되는 함수를 소멸자라고 이야기합니다. init 위에서 생성자가 무엇인지 이야기를 했는데, 생성자는 왜 사용하는 걸까요? class MyClass: def __init__(self): self.var = '안녕하세요!' print('MyClass 인스턴스 객체가 생성되었습니다') obj = MyClass() # ‘MyClass 인스턴스 객체가 생성되었습니다’가 출력됨 print(obj.var) # ‘안녕하세요’가 출력됨 생성자는 객체를 초기화 할 때, 자주 사용합니다. del def __init__으로 객체를 생성했으므로 이번엔 객체를..
저번 포스팅때는 한국 사회의 흐름을 알아보았는데요. 지난 19년을 되돌아보니 사건, 사고가 많았으며, 다시는 일어나면 안되는 사고들과 잊으면 안되는 일들이 많았습니다. 그럼 이번엔 경제를 되돌아보며 한국 경제에는 어떤 일들이 있었는지 알아보겠습니다. 그리고 크롤링은 저번에 했기 때문에 따로 다루지는 않겠습니다. Keyword 사회와 마찬가지로 경제도 표를 만들면 아래와 같습니다. 우선 경제하면 가장 많이 떠오르는 것이 부동산이 아닐까 싶습니다. 역시나 부동산이나 재건축이 가장 많이 눈에 띄는 것이 보입니다. 2005년 국세청 키워드가 보이는데, 아마 종부제 시행으로 인해 많은 헤드라인을 장식했던 키워드 인것 같습니다. 경제하면 기업들이 빼놓을 수 없는데, 아래와 같이 예전에 비해서는 갈수록 기업의 이름이..
미디어는 한국 사회의 흐름을 압축적으로 담고 있는 Snapshot입니다. 지난 19년, 가장 대표적이고 강력한 미디어, 헤드라인 뉴스로 한국 사회를 되돌아 볼까합니다. 이번 포스팅은 사회 부분을 다뤄보겠습니다. SBS뉴스 사회 부분의 헤드라인 부분을 다 크롤링하여 문장을 단어별로 나눈 후 count 하였습니다. Web Crawling R을 이용하여 크롤링을 하려고 할때 아래와 같은 라이브러리가 필요합니다. # 필요 패키지 설치 library(gsubfn) library(stringr) library(XML) 크롤링 함수는 아래와 같이 URL을 입력받아 긁어오도록 하였습니다. SBSnews
청년 내일 채움 공제는 정부에서 중소기업 다니는 청년들에게 주는 해택인데, 적금 개념이라고 보면 된다. 2년 혹은 3년짜리 적금짜리 들고 매달 125,000원 혹은 165,000원 정도 내면 나중에 1600만원 혹은 3천만원이라는 돈을 받게 된다. 나는 2018년 3월에 입사했기 때문에 3년형을 들 수 있었는데, 그 당시 공제 담당하던 인사팀 대리가 나를 싫어해서 3년형 가입이 아닌 2년형 가입으로 안내해주었다. 나중에 알게 된 사실은 나 말고도 그냥 대부분 사람들을 싫어해서 일부로 그렇게 했다고 들었고 나중에 엄청 윗사람들에게 깨졌다는 소문을 들었다. 아무튼 3월 25일에 나는 입사하여 바로 2년형 공제에 가입했고 5월 25일부터 돈이 빠져나갔다. 나중에는 월급날이 5일이여서 돈 빠져나가는 날을 5일로..
의사 결정 트리로 독일 은행의 대출 채무 이행 여부를 분석해볼까 합니다. 데이터는 여기에서 다운 받을 수 있습니다. 그리고 코드는 여기 GitHub에서 확인할 수 있습니다. DataSet 데이터 라벨은 default 변수이며, yes는 대출금 미상환, no는 대출금을 상환했다는 뜻입니다. 대부분의 컬럼은 이름에서부터 알 수 있기 때문에 다루진 않고, 알기 어려운 칼럼에 대해 설명을 조금 설명을 하자면 아래와 같습니다. - checking_balance 예금 계좌 - savings_balance 적금 계좌 - amount 대출 금액 데이터에서 저 컬럼이 왜 있는지에 대해 분석을 조금 하게 되면, 데이터 분석 시에 조금 수월할 수 있습니다. 예금계좌와 적금 계좌가 있는 이유는 대출 신청자의 예금계좌와 적금 ..
파이썬에서 특정 부분만 걸러 내고 싶을때, 사용되는 filter 함수입니다. 이름에서부터 느껴지듯 뭔가 걸러내기 위해 사용되는 함수라는 것을 알 수 있습니다. filter 기본적으로 내장되어 있는 모듈이기 때문에 따로 불러 올 필요는 없습니다. filter를 이용하면 소수를 걸러낼 수 있다고 했는데, 소수는 두개의 수로 못나눈 것을 이야기합니다. 대표적으로 7이 소수가 될 수 있습니다. 소수의 반대는 합성수라고 이야기 할 수 있는데, 합성수의 예로는 6이 있습니다. (2*3=6) def getPrime(x): for i in range(2, x-1): if x%i == 0: break else: return x listdata = [117, 119, 1113, 11113, 11119] ret = filt..
에외처리에도 여러가지 방법이 있는데, 이번에는 실행한 코드가 정상적으로 작동을 하든, 에러가 나던 무조건 실행되는 블록을 추가해보는 것을 해보겠습니다. 예외처리 (try ~ except ~ finally) try ~ except ~ finally문법은 아래와 같습니다. try ~ except과 별반 다를 것이 없고 그냥 한줄만 추가하면 되는거라 복잡하지는 않습니다. def my_power(): try: x = input('분자 숫자를 입력하세요 ~ ') y = input('분모 숫자를 입력하세요 ~ ') z = int(x) / int(y) except: print(' 0 으로 나눌 수 없습니다. ') finally: print('저는 무조건 실행할꺼라구요! 아.시.겠.어.요.?') print(my_pow..
파이썬에서 예외처리는 프로그램에서 에러가 발생 했을 때, 에러를 핸들링하는 기능을 이야기합니다. 예외처리 (try ~ except ~ else) 에러가 나면 보통 프로그램이 종료되기 때문에 큰 문제가 발생하게 됩니다. 예를들면 API를 구현했는데, 어떠한 이유로 에러가 나서 종료가 된다면 큰 문제가 될 수 밖에 없습니다. 그래서 보통 예외처리를 하게 되는데, 예외처리를 하게 된다면 에러가 나는 부분을 제외하고 나머지 프로그램은 정상 작동하기 때문에 문제가 발생되지 않습니다. def my_power(): x =input(" 분자 숫자를 입력하세요 " ) y =input(" 분모 숫자를 입력하세요 ") return int(x)/int(y) print(my_power()) 위와 같이 코드를 작성하고 에러를 출..
강화학습에서의 자주 거론되는 min/max 알고리즘에 대해 자세히 알아보겠습니다. min/max 알고리즘 min/max 알고리즘에서 max는 나를 뜻하는 것이고 min는 적을 이야기 합니다. 탐색전에 트리는 맨 아래 단계만 의미있는 수를 가지며, 탐색이 진행되면서 하위에서 상위로 값을 찾아 올라가게 되는데 이때 상위 노드에서 선택되는 값은 현 단계가 max이면 아래에서 최대값을, 현 단계에서 min이면 아래에서 최소값을 선택하게 됩니다. 즉, 나(컴퓨터)는 가장 큰 수를 취해야 하며, 상대(사람)은 가장 작은 수를 취해야 합니다. 양수(+ ∞)는 내가 이긴 것(컴퓨터)이고, 음수(- ∞)는 내가 진 것(사람)을 이야기합니다. 강화학습으로 Tic Tac Toe을 학습한다고 했을 때, 평가 함수 e와 상태 ..
오늘은 몬테카를로 알고리즘으로 파이썬 원주율을 구해보려고 합니다. 원주율 가로 길이가 2인 사각형에 내접하는 반지름 길이가 1인 원의 넓이를 몬테카를로 알고리즘으로 구해보겠습니다. 원에 무작위로 점을 찍어서 원 안에 들어가는 점의 개수와 사각형 안에 찍히는 전체 점의 개수를 비교합니다. 예를 들면 10개의 점을 무작위로 찍었을 때, 원 안에 찍히는 점의 개수가 7개 라면? 이런식으로 비교하는 거죠. 그래서 100개의 점을 무작위로 찍었을 때, 1000, 10000, ... 1억개의 점을 무작위로 찍었을 때, 찍는 점의 수가 많아 질수록 실제 원의 넓이에 가까워 집니다. 만약에 100개의 점을 찍었을 때, 이 중 80개의 점이 부채꼴의 내부에 찍혔다면, 아래와 같이 계산 할 수 있습니다. 코드로 구현하면 ..
저번 포스팅에서는 신문사를 크롤링하는 것을 해봤는데, 이번에는 네이버에서 이미지를 크롤링하는 것을 해볼까합니다. 이미지 크롤링 이미지 크롤링할 때 필요한 모듈은 아래와 같습니다. import urllib.request from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys # 웹 애플리케이션의 테스트를 자동화하기 위한 프레임 워크 # 손으로 마우스 클릭해서 데이터를 검색하고 스크롤링 할 수 있다 import time # 중간마다 sleep를 걸어야 한다. 그리고 저번 신문사 크롤링과는 다르게 이번에 chromedriver가 필요하기 때문에 다운해야합니다. 여기에서 O..