반응형

전체 글 232

CNN의 네트워크 종류

1. LeNet 20여년 전에 제안된 첫 CNN LeNet은 손글씨 숫자를 인식하는 네트워크로 1998년에 제안되었다. 위 그림과 같이 합성곱 계층과 풀링 계층을 반복하고, 마지막으로 완전연결 계층을 거치면서 결과를 출력한다. '현재의 CNN'과 달리 활성화 함수로 시그모이드를 사용하고 서브샘플링을 하여 중간 데이터의 크기가 작아진다. 2. AlexNet 2012년에 발표되어 딥러닝 열풍을 일으키는데 큰 여할을 했다. 합성곱 계층과 풀링 계층을 거듭하며 마지막으로 완전연결 계층을 거쳐 결과를 출력한다. 활성화 함수로 ReLU를 사용하였다. LRN이라는 국소적 정규화를 실시하는 계층을 이용한다. 드롭아웃을 사용한다. 3. VGGNet 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN이다. 다만 비중있는..

의사결정트리 시각화

1. 아이리스 데이터 (파이썬) # 데이터 불러오기 / 데이터 정보 확인 import pandas as pd iris = pd.read_csv("C:/data/iris.csv") iris.info() iris.head() # 목표변수와 나머지 변수들을 따로 저장 x = iris.iloc[:,0:4] y = iris.iloc[:,4] # 데이터 분포 확인 x.info() # 데이터 프레임 y.value_counts() # 시리즈 # 데이터셋 나누고 라벨 분포 확인 from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.20) from collection..

의사결정트리를 이용한 타이타닉 데이터셋 분석

타이타닉 데이터셋 (titanic.csv) survived : 목표변수, 종속변수, 생존여부(0:사망, 1:생존) pclass : 좌석 등급 name : 탑승객 이름 gender : 성별 age : 나이 sibsp : 함께 탑승한 형제수 parch : 함께 탑승한 부모수 ticket : 티켓 번호 fare : 탑승권 가격 cabin : 선실 번호 embarked : 탑승 승착장 R 로 분석하기 # 데이터 불러오기 및 데이터 정보 확인 titanic

간단한 신경망으로 MNIST 정확도 99% 만들기

MNIST 데이터란? 인공지능 연구의 권위자 LeCun교수가 만든 데이터셋 숫자 0~9까지의 손글씨 이미지의 집합이다. 학습데이터 60,000개(확인용데이터 5000개), 테스트데이터 10,000개로 구성 되어 있다. 사이즈는 28x28의 크기를 가진다. 이미지의 값은 0 또는 1이다 (흑,백) MNIST 이미지 2차원 행렬에서 1차원으로 쭈욱 핀 형태로 784개의 열을 가진 1차원 행렬로 변환되어 저장이 되어 있다. mnist.train.image : 784개의 열로 구성된 이미지가 55000개가 저장이 되어 있다. mnist.train.image : 텐서플로우의 행렬을 나타내는 shape의 형태로는 shape=[55000,784] 이 된다. mnist.test.image : 784개의 열로 구성된 숫..

의사결정트리

의사결정트리 지도학습 해석력이 좋다.(현장에서 많이쓰임) : 어떤컬럼을 먼저 바라봐야 분류가 잘되는지 의사결정규칙(decision rule)을 나무구조(tree)로 도표화하여 분류와 예측을 수행하는 분석방법이다. 활용분야 은행대출 : 도산업체 분류 (예측) 과거의 데이터로부터 도산기업과 도산화지 않은 기업을 찾아내는 방법 카드 발급 대상 : 신용불량자 분류 (예측) 통신 : 이탈고객 (해지자, 번호이동) 분류, 새로운 서비스 대상 고객선정 쇼핑 : direct mailing 대상 고객선정 장점 지도학습 (분류, 예측)의 데이터마이닝 기법 규칙의 이해가 쉽다, SQL과 같은 DB언어로 표현 적용결과에 의해 IF-THEN 으로 표현되는 규칙이 생성 해석력이 좋다. 분류알고리즘(R) C5.0 : 엔트로피 지수..

NLTK 자연어 처리 패키지 사용

1. nltk.NaiveBayesClassifier + show_most_informative_features() # nltk 패키지 다운 (오래 걸리니까 punkt만 다운) # 필요한 라이브러리 불러오기 nltk.download('punkt') import nltk from nltk.tokenize import word_tokenize from konlpy.tag import Okt pos_tagger = Okt() # train 데이터셋 train = [('홍길동은 좋아', '긍정'), ('강아지는 무지 좋아', '긍정'), ('수업이 재미없어', '부정'), ('홍길동은 이쁜 강아지야', '긍정'), ('난 수업 마치고 홍길동이랑 놀거야', '긍정'), ('오늘 하루는 너무 짜증스러운 날이야', '..

베르누이 나이브베이즈

베르누이 나이브베이즈 데이터의 특징이 0또는 1로 표현하는 경우 사용된다. 1. 단어 정제 안함 # 필요한 라이브러리 불러오기 import pandas as pd import numpy as np from collections import Counter from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score, classification_report # 데이터 불러오기 / 구조 확인 data = pd.read_csv("C:/data/bulletin_board.txt",header=None, encodi..

나이브베이즈(Naive Bayes) 분류

나이브베이즈(Naive Bayes) 데이터를 나이브하게 독립적인 사건으로 가정하고 이 독립사건을 베이즈이론에 대입시켜 가장 높은 확률의 레이블로 분류를 실행하는 알고리즘이다. 사전확률 정보를 이용하여 사후확률을 예측하는 이론 패턴분석에 주로 사용됨 P(A|B) : 어떤 사건 B가 일어났을때 사건 A가 일어날 확률 P(B|A) : 어떤 사건 A가 일어났을때 사건 B가 일어날 확률 P(A) : 어떤 사건 A가 일어날 확률 P(B) : 어떤 사건 B가 일어날 확률 P(B|A) = P(A∩B) / P(A) = P(A|B) * P(B) / P(A) P(A∩B) = P(A|B) * P(B) P(B∩A) = P(B|A) * P(A) 예) ADsP - 빈도 YES NO TOTAL 합격 33 19 62 불합격 26 12..

반응형