이번에는 회귀 모델을 신경망으로 만들어서 분석하는 실습을 진행하도록 하겠습니다. 먼저 회귀 모델을 신경망으로 만드는 이유에 대해 예를 들어 말씀드리도록 하겠습니다. 신경망으로 만드는 이유는 우리가 가지고 있는 표본들을 활용하여 만든 예측 모델을 일반화시키기 위함입니다. 우리가 남자 100명의 키와 몸무게에 대한 정보를 가지고 있다고 가정해봅시다. 이 100명의 정보를 활용하여 키로 몸무게를 예측하는 예측 모델을 만들었을 때, 이 모델은 모델을 만들 때 활용된 100명에 대한 예측 정확도는 아주 높을 것입니다. 하지만 전 세계 인구는 70억명.. 남자가 반이라고 예상해도 35억명입니다. 100명이 35억명을 대표할 수가 없습니다. 현실에 100명으로 만든 예측 모델을 적용하는 것은 마치 한 초등학교 1학년..
파이썬으로 회귀 분석을 수행하는 방법은 3가지가 있습니다. 1. 회귀식을 직접 코드로 작성하기2. sklearn 라이브러리 사용하기3. statsmodels 라이브러리 사용하기 회귀식은 매우 단순한 편이기 때문에 직접 데이터의 패턴을 분석하는 코드로 짜는 것도 어렵지 않습니다만,이미 만들어져 있는 라이브러리를 사용하는게 편리하며, 작성한 코드를 검증하는 시간도 줄어드는 이점이 있어라이브러리를 사용하여 예측할 것을 권유드립니다. 본 글에서는 3. statsmodels 라이브러리를 사용하여 회귀분석을 수행해보도록 하겠습니다. 분석순서는 다음과 같습니다. 1. 라이브러리 호출 2. 데이터 불러오기3. 데이터 전처리4. 상관 분석 수행5. 회귀 분석 수행 1. 라이브러리 호출사용할 라이브러리를 호출합니다.사용할..
오늘 소개해드릴 내용은 기계학습의 가장 기초가 되는 회귀분석입니다. 회귀(regression)는 주로 연속데이터(1,2,3,4...)를 입력데이터로 받아 패턴을 분석한 후, 연속데이터로 예측된 결과값을 출력할 때 주로 사용합니다. 가장 간단한 회귀 분석의 예시로는 키로 몸무게를 예측하는 것입니다. 다음과 같은 표본이 있습니다. 키(cm) 몸무게(kg) 170 70 180 80 190 90 이 표본을 바탕으로 키가 185cm인 사람의 몸무게를 예측해보기 위해서는 패턴을 분석해야 합니다. 그러기 위해서는 키를 몸무게로 변환시켜주는 해를 구해야합니다.식은 다음과 같습니다. f(x) = yf(170) = 70f(180) = 80f(190) = 90 몸무게를 예측하기 위해 주어진 정보는 키밖에 없으므로 식은 다음..
파이썬으로 한글 자연어를 처리하기 위해서는 java 기반으로 만들어진 형태소 분석기를 사용합니다.konlpy는 자바 기반의 형태소 분석기를 파이썬에서 사용할 수 있게 해주는 아주 고마운 라이브러리입니다. 제공하는 형태소 분석기는 총 5개가 있습니다.1. jhannanum(한나눔) 2. kkma(꼬꼬마)3. komoran(코모란)4. twitter(트위터)5. mecab(메캅) *konlpy 설명 : https://konlpy-ko.readthedocs.io/ko/v0.4.3/ *konlpy 분석기 별 성능 비교 : http://konlpy.org/ko/latest/morph/#comparison-between-pos-tagging-classes 형태소 분석 순서는 다음과 같습니다. 1. 형태소 분석기 호..
python3에서는 'wikipedia' 라이브러리를 제공하고 있습니다.(문서1. https://pypi.org/project/wikipedia/ 문서2. https://pypi.org/project/Wikipedia-API/) 사용방법은 다음과 같습니다. 1. wikipedia 라이브러리를 설치합니다.(cmd -> pip install wikipedia-api) 2. 코드 작성2.1 라이브러리 호출 2.2 접속할 wikipedia 설정2.3 페이지 존재여부 확인2.4 데이터 결과 확인 2.5 데이터 내리기(다운로드) 위의 순서대로 진행해보도록 하겠습니다. 2.1 라이브러리 호출 import wikipediaapi #사용할 api 호출 2.2 접속할 wikipedia 설정 wiki=wikipediaapi..
최근 기계 학습과 관련한 프로젝트를 진행하며 얻게된 지식들을 공유하고자 합니다. 먼저 최근에 사용하고 있는 랜덤 포레스트에 대해서 설명드리고자 합니다. 위키에서 쉽고(?) 자세하게 설명이 되어 있으므로 여기서는 간단히 장단점만 설명하고자 합니다. 위키 url입니다.https://ko.wikipedia.org/wiki/%EB%9E%9C%EB%8D%A4_%ED%8F%AC%EB%A0%88%EC%8A%A4%ED%8A%B8 랜덤 포레스트의 장점은 1. 딥러닝과 비교했을 때 사람이 직관적으로 이해하기 쉽습니다. 딥러닝(심층심경망)의 경우, 결국 컴퓨터에게 알아서 좋은 결과가 나오도록 튜닝해달라고 맡기는 방식이므로, 결과의 accuracy가 높다 하여도 왜 높은지 설명하기가 어렵습니다. 이는 신뢰와 관련되어 있습니다..
w2v은 N 차원의 공간에 단어들을 투사하며 만들어진다. 빔프로젝트가 벽에 이미지를 투사하는 것과 유사하다고 생각하면 된다. 즉, w2v은 N이라는 벽에 단어를 벡터값으로 표현한다고 생각하면 된다.각 단어는 소수로 표현이 되는데 이는 N차원의 공간에 단어들간의 배열관계를 의미한다. 다르면서도 연속적인 어떠한 잠재적인 공간에 단어를 투사하는 방법은 단어가 기본 상태(단어 상태)보다 흥미롭고 다양한 의미를 표현할 수 있는 미적분 특성(벡터)을 가질 것이다라는 생각이 들어있다.w2v 알고리즘의 원리는 아래와 같다. 다음과 같은 문장이 있다고 생각해보자.개가 공원에서 걸으려면 __ 가야한다.빈칸에 '밖으로' 라고 쓸 수 있고, '밖에' 라고 쓸 수도 있다. w2v 알고리즘은 이러한 아이디어에서 나왔다.빈칸을 체..
머피의 법칙 1949년 미국의 항공 엔지니어 에드워드 A. 머피는 항공기 추락에 대비한 안전장치를 개발하고 있던 미 공군의 한 프로젝트에 참여하고 있었다. MX981이라고 불리던 이 프로젝트는 급속함 감속이 일어났을 때의 관성력을 인간이 얼마나 견뎌 낼 수 있는가를 시험하는 것이었다. 이 테스트를 하기 위해서는 고속 로켓 썰매에 탄 사람의 몸에 여러 개의 센서를 부착해야 했다. 머피는 이 일을 조수에게 맡겼다. 센서를 거꾸로 부착할 가능성이 있기는 했지만, 조수가 설마 그런 실수를 하랴 생각햇다. 그런데 정말 그런 일이 벌어졌다. 조수가 모든 센서를 거꾸로 부착하는 바람에 테스트가 실패로 돌아간 것이다. 머피는 화가 나서 조수를 향해 말했다. "저 자식은 실수를 저지를 가능성이 있다 싶은 일을 하면 꼭 ..
피터의 원리 : 한 위계 조직에서 각 종업원은 자신의 무능력이 드러나는 단계까지 승진하는 경향이 있다. 이 원리는 1969년 미국의 교육학자 로렌스 J. 피터가 처음으로 제시했다. 그는 기업이나 공공 조직에서 보편적으로 나타나는 무능화 현상에 주목하고, 그것을 연구하는 이라는 새로운 학문 분야를 창시하고자 했다. 그는 수백 건에 달하는 무능력 사례를 조사하고 분석하여 그것이 확산되는 이유를 해명하고 싶어했다. 그의 견해는 이러하다. 한 조직에서 어떤 사람이 맡은 일을 잘하면, 그에게 더 복잡한 임무가 주어진다. 그가 그 임무를 제대로 수행하면, 다시 승진을 하게 된다. 그런 식으로 능력을 인정받아 승진을 거듭하다 보면, 언젠가는 자기 능력을 넘어서는 직책을 맡게 되고, 그는 이 직책을 끝까지 고수한다. ..
====================질문======================== test.csv 라는 파일을 읽어서 테스트.csv 라는 새로운 파일을 만드는 코드입니다.다른 부분은 삭제하고 문제가 되는 부분만 올려봅니다. 결과적으로는 다른 방법으로 해결을 했는데, 이해가 안가는 부분이 있어 질문드립니다.다음과 같이 작성시 원본파일의 레코드들은 아무런 공백도 없으나 새로운 파일에서 모든 레코드 뒤에 \n가 붙어 레코드의 길이를 카운트하면 원 값보다 더 길게 나옵니다.값을 세는 코드는 따로 작성했지만 밑의 코드에서 어느 부분 때문에 \n 가 붙는지 궁금합니다.file='C:/test.csv' with open('C:/테스트.csv','w',newline='') as testfile: csv_writer=..