반응형

프로그래밍 105

[혼공머신러닝] 4장 로지스틱회귀 정리

안녕하세요 Dibrary입니다. 이번에는 혼자 공부하는 머신러닝의 4장, 로지스틱 회귀에 대해 정리해보겠습니다. 로지스틱 회귀는 '회귀'라는 단어가 들어가긴 하지만 분류 모델입니다. 학습하는 선형 방정식이 회귀처럼 생겼을 뿐이죠. 이 분류가 될 확률을 구한다고 할 때, 확률은 0~1 사이의 값이죠. (1은 100%를 의미.) 근데, 확률이 0인 경우는 잘 안나와야겠죠? 확률이 높을 수록 분류가 잘 될 것이구요. 그러한 특성을 가진 그래프를 '시그모이드 함수'라고 합니다. 그려보면 위와 같습니다. 잘 안보이신다구요? grid를 추가해 보겠습니다. x축의 0값을 기준으로 왼쪽으로 가면 0으로 수렴하고, 오른쪽으로 갈 수록 1에 수렴합니다. 임의 데이터를 가지고 로지스틱 회귀를 해 보겠습니다. 이렇게 입력하면..

CentOS 에서 Airflow 설치할 때 주의점

안녕하세요 Dibrary입니다. 데이터 처리에 있어서 굉장히 핫한 Airflow를 VirtualBOX(Centos)에 설치해보겠습니다. 굳이 글을 작성하는 이유는, Airflow를 설치하는데 있어서 그냥 pip install apache-airflow 만 하면 된다고 하는 포스팅이나 책이 많았는데, 막상 안되더라구요. 다행이도 해결방법을 찾아냈습니다. 물론, 한 번에 설치가 된다면 굉장히 다행이구요. 제가 실행한 Linux 환경은 CentOS 7이고, 파이썬은 원래 2.7이 깔려있었으나, 3.6으로 설치했습니다. 먼저 각종 책에서 나오는 pip install apache-airflow를 입력하고, pip list로 확인했을 때, 이렇게, apache-airflow 가 있어야 합니다. apache-airf..

RabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보자

안녕하세요 Dibrary입니다. 이번에는 rabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보겠습니다. 넣는 위치와 꺼내는 위치를 다르게 할 수 있다는 점에서 다양한 구성을 해서 데이터의 흐름을 만들 수 있는 좋은 기술이죠. 서버 실행 후에(설치 하면 자동으로 실행 중이겠죠?) 웹 브라우저에서 localhost:15672를 입력하면 아래와 같은 로그인 창이 나옵니다. 처음이라면 username도 guest, password도 guest입니다. 로그인에 성공하면 아래와 같은 기본 화면이 나옵니다. 그러면 간단하게 하나의 virtual host, queue를 만들어서 파이썬으로 데이터를 넣고 꺼내보겠습니다. 위 화면에서 admin 탭으로 가주세요. 오른쪽에 Virtual Hosts를 눌르시면 아래와 같은 화..

파이썬으로 XML파일 파싱해서 사용하기

안녕하세요 Dibrary입니다. 이번에는 파이썬으로 XML파일을 파싱해보겠습니다. XML파일은 JSON파일과 마찬가지로 설정하는 부분에서 굉장히 많이 쓰이고, 또 각종 산업 현장에서 태그들을 XML파일로 정의해서 쓰거나, 로그를 XML꼴로 저장하기도 합니다. 이럴 경우 airflow를 사용해서 해당 파일을 파싱하게 해서 정리하면 꽤 유용합니다. 파이썬은 Jupyter를 사용하고, XML파일은 임의로 아래와 같은 파일을 만들었습니다. (실제 플랜트 산업에서 쓰는 것과 같진 않지만, 유사하게 말이죠) 참고로 저는 파일 이름을 sample.xml 이라고 지었습니다. xml을 파싱하려면 lxml 모듈이 있어야 합니다. 늘 그렇듯, pip install lxml을 하시면 자동으로 설치가 됩니다. 먼저 root의 ..

[혼공머신러닝] 3장(최근접 이웃회귀, 선형회귀) 정리

안녕하세요 Dibrary입니다. 이번에는 혼자공부하는 머신러닝 책의 3 챕터, '회귀'에 대해 정리해보겠습니다. 회귀는 간단하게 클래스 중 하나로 분류하는 것이 아니라, 임의 숫자를 예측하는 것입니다. 두 변수 사이의 상관관계를 분석하는 방법이 회귀입니다. 1. k-최근접 이웃 회귀 예측하려는 샘플에 가까운 샘플 k개를 선택하는데, 샘플의 타겟은 '수치값'입니다. 간단히 예를 들자면, 이 수치값의 평균을 구하고 이를 예측 값으로 사용하는 것이 일종의 회귀 방법입니다. 2. 선형회귀 샘플 데이터들의 특성을 가장 잘 나타내는 직선을 구하고, 해당 선을 기준으로 예측값을 구하는 방법입니다. 과대적합 = 모델이 훈련에 너무 익숙해져 있는 상황입니다. 따라서, 실제 데이터가 주어지더라도 훈련과 다르면 틀리다고 판..

파이썬으로 임의 데이터 생성, 데이터파일 만들기

안녕하세요 Dibrary입니다. 데이터 분석이나, 데이터 엔지니어링을 할 때 생각보다 많은 양의 데이터가 필요한데 구하기가 마땅치 않을 때가 많죠. 이럴 때 파이썬을 이용해서 임의 데이터 파일을 만들어서 '동작여부, 기능 상태 확인'등을 진행해볼 수는 있습니다. 데이터를 임의로 생성할 때 필요한 것은 faker 모듈입니다. tmp라는 Faker 객체를 만든 후에, name을 불러보니 제가 입력한 적도 없는 데이터가 마치 '이름'처럼 나왔죠? 그럼 이 Faker 객체로 어떤 것들을 만들 수 있는지는 dir(tmp) 를 해 보시면 알 수 있습니다. 아주 많은 것을 만들 수 있죠. 그럼, 이제 임의로 제가 csv 파일 꼴의 데이터를 생성해 보겠습니다. 날짜, 시간, 이름, 지역 이렇게 구성된 데이터를 한 번 ..

[공공데이터포털] 사용해보기

안녕하세요 Dibrary입니다. 이번에는 공공데이터포털을 사용해서 데이터를 확인해 보겠습니다. 단순히 확인에 그치지 않고, 해당 API를 잘 활용해서 파싱후에 분석하는데 활용해도 괜찮겠죠. 먼저 사이트는 아래와 같습니다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 들어가면 이런 화면이 나옵니다. 사용하려면 당연하게도? 회원가입을 해야 합니다. 그리고, 검색창에 저는 '고속버스도착정보'를 검색했습니다. 그랬더니 이렇게 엄청많이 나오네요. 그 중에 전 맨 위에 것을 선택해보았습니다. 활용신청 버튼을 누르면 아래 화면..

파이썬으로 JSON 파일에서 필요한 것만 뽑아내기

안녕하세요 Dibrary입니다. 이번엔 JSON파일을 파이썬으로 파싱해보겠습니다. JSON은 ElasticSearch를 사용하면 정말정말 자주 보게 될 텐데요, 처음 접한 경우에는 좀 어색할 수 있습니다. 먼저 임시 JSON 파일을 만들어보겠습니다. 대충 코드가 비슷하게 들어가 있죠? 이 파일을 저는 Jupyter를 이용해서 확인해 보겠습니다. 항상 import json을 해 주셔야 합니다. 그리고 가장 위에 있는 'users'에 속한 내용들을 가져와봤습니다. 위에 있는 내용을 통으로 다 가져온걸 볼 수 있습니다. 참고로 해당 데이터는 'list' 타입입니다. 그래서 하나씩 확인 해 보니 인덱싱이 가능한걸 볼 수 있습니다. 좀 더 편하게 for문으로 확인해 보면 아래와 같습니다. 자 그럼 해당 데이터 중..

[혼공머신러닝] 1장, 2장 정리

안녕하세요 Dibrary입니다. 이번에는 '혼자 공부하는 머신러닝+딥러닝' 책을 공부하면서 간단히 내용을 정리해보겠습니다. 혼공학습단에 선정되기도 했고, 어차피 머신러닝, 딥러닝에 대해 간략한 개괄정도밖에 몰랐어서 이참에 좀 제대로 정리해두고자 합니다. 머신러닝 = 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 딥러닝 = 머신러닝 알고리즘 중 인공신경망을 기반으로 한 방법들을 지칭 이 책은 구글의 Colab에서 실행해보는 것으로 구성되어 있습니다. 제가 띄운 화면인데, 정말 심플하죠? Jupyter를 띄운것이랑 거의 차이가 없습니다. 단지, 몇 가지 설정을 통해 GPU나 TPU 등을 써볼 수 있다는 장점이 있습니다. 간단하게, 데이터가 눈에 띄게 2가지로 분류된 것을 볼 수 있습니다. 즉,..

[디자인 패턴] 싱글톤

안녕하세요 Dibrary입니다. 디자인패턴이 몇 개 있는데, 그 중에 싱글톤을 정리해두고자 합니다. 싱글톤은 아래와 같이 설명할 수 있습니다. 여러 사람이 접근 하더라도 해당 객체는 반드시 같은 객체여야 한다. 이러한 경우에 싱글톤 패턴을 적용할 수 있다. 여러 사람이 접근하더라도 해당 객체는 반드시 같아야 한다는게 무슨 의미일까요? 즉, '하나의 객체(인스턴스)'만 생성이 되고 이걸 여러 사람이 '돌려쓴다'는 개념입니다. 대표적으로 DB접속할 때 쓸 수 있습니다. Jupyter를 이용해서 코드를 확인해보겠습니다. Singleton이라는 클래스에 __new__ 메서드와, __init__메서드가 있습니다. __init__은 많이들 생성자로 알고 계실텐데요, 위 코드를 보면 __new__가 먼저 실행되었음을..

반응형