본문 바로가기

DATA STUDY

(16)
셋째 마당 - 인구 구조 다양한 형태로 시각화하기 UNIT 08-01 책에서 안내해주는 것을 따라 남녀 구분이 된 데이터를 다운받습니다. 인덱싱 부분은 책에 자세히 설명되어 있으니 책 내용을 잘 따라가면 될 것 같습니다. imort csv f = opne('gender.csv') data = csv.reader(f) m = [] f = [] for row in data: if '신도림' in row[0]: for i in row[3:104]: m.append(int(i)) for i in row[106:]: f.append(int(i)) 이렇게 보는 것이 이해하기 더 쉬워보여 먼저 이 코드부터 보겠습니다. 책에서 나와있듯 3번 인덱스부터 103번까지가 0세부터 100세까지의 남성 데이터, 다시 106부터 끝까지가 여성 데이터입니다. 같은 내용을 다르게 표현해볼까요? imo..
밑시딥 - 시그모이드 함수(Sigmoid function) exp(-x)는 e에 마이너스 x 제곱을 의미합니다. e는 자연상수입니다. def sigmoid(x): return 1 / (1 + np.exp(-x)) 그래프는 엄청 복잡해보이지만 막상 코드로는 별로 복잡하진 않습니다. x = np.arrange(-5.0, 5.0, 0.1) y = sigmoid(x) plt.plot(x, y) plt.ylim(-0.1, 1.1) plt.show() x축은 -5부터 5까지 0.1 단위로 표시하고 y축은 -0.1부터 1.1까지 표시합니다. 책에서 시그모이드 함수와 계단 함수를 비교하면서 설명하고 있습니다. 1. 우선 매끈함에 있어 차이가 있습니다. 계단 함수는 0 혹은 1의 값만 출력하는 반면 시그모이드 함수는 실수(0.731, 0.880 등등)를 돌려줍니다. 이 부분은 ..
셋째 마당 - 인구 구조 다양한 형태로 시각화하기 UNIT 08 책 109 페이지에 나오는 '입력 프로그램'을 구현해보겠습니다. import csv f = open('age.csv') data = csv.reader(f) result = [] name = input('인구 구조가 알고 싶은 지역의 이름(읍면동 단위)을 입력해주세요 : ') for row in data: if name in row[0]: for i in row[3:]: result.append(int(i.replace(',',''))) import matplotlib.pyplot as plt plt.style.use('ggplot') plt.rc('font', family = 'Malgun Gothic') plt.tile(name + ' 지역의 인구 구조') plt.plot(result) plt.sho..
셋째 마당 - 우리 동네 인구 구조 시각화하기 UNIT 07 1. 인구 데이터 파일을 읽어온다. 2. 전체 데이터에서 한 줄씩 반복해서 읽어온다. 3. 우리 동네에 대한 데이터인지 확인한다. 4. 우리 동네일 경우 0세부터 100세 이상까지의 인구수를 순서대로 저장한다. 5. 저장된 연령별 인구수 데이터를 시각화한다. 1. 인구 데이터 파일을 읽어온다. import csv f = open('age.csv') data = csv.reader(f) 2. 전체 데이터에서 한 줄씩 반복해서 읽어온다. for row in data: print(row) 여기에서 특정 동네에 대한 데이터를 보고싶으면 어떻게 해야할까요? if '서울특별시 구로구 신도림동(1153051000)' == row[0]: print(row) 이런식으로 조건을 달아서 해당 데이터만 확인하면 됩니다. 같은..
밑시딥 - 신경망(Neural networks) 그리고 활성화 함수(Activation function) missinglink.ai/guides/neural-network-concepts/perceptrons-and-multi-layer-perceptrons-the-artificial-neuron-at-the-core-of-deep-learning/ Perceptrons & Multi-Layer Perceptrons: the Artificial Neuron - MissingLink Learn about the artificial neuron at the core of deep learning—how a perceptron works, and how they are used in real neural network projects. missinglink.ai The multilayer perceptron ha..
둘째 마당 - 기온 데이터 다양하게 시각화 UNIT 06 UNIT 06은 데이터를 다양한 관점에서 보는 것이 좋을 수 있다는 말로 시작합니다. 지금까지 했던 꺾은선 그래프가 아닌 다른 형태의 그래프를 그려보겠습니다. 히스토그램 자료 분포를 hist() 함수를 통해 직사각형 모양의 막대 그래프로 나타냅니다. import matplotlib.pyplot as plt plt.hist([1,1,2,3,4,5,6,6,7,8,10]) plt.show() 데이터 분포에 따라 높이가 결정됩니다. 예를 들어 1과 6은 두 개씩 있으니 좀더 높이가 높겠죠? 기온 데이터를 히스토그램으로 표현하기 import csv import matplotlib.pyplot as plt f = open('seould.csv') data = csv.reader(f) next(data) result..
둘째 마당 - 내 생일 기온 그래프 그리기(인코딩) UNIT 05 익숙해질때까지 데이터 불러오는 것을 반복해서 연습하겠습니다. import csv f = open('seoul.csv') data = csv.reader(f) for row in data: print(row) 우선 csv 모듈을 import 하여 csv 파일을 읽을 수 있게 합니다. 혹시나 저처럼 헷갈리실 분이 있을까봐 미리 적어두는데 csv 모듈을 사용하는 것이 csv 파일을 사용하기 위한 유일한 길은 아닙니다. Pandas의 read_csv 함수를 이용해서 DataFrame으로도 불러올 수 있습니다. 단지, csv 모듈이 파이썬 표준 라이브러리에 속해 있기 때문에 대표적으로 사용되고 있습니다. 다시 코드로 돌아오면 for문을 통해서 data 파일에 있는 내용을 한 줄씩 출력할 수 있게 됐습니다. 여기서..
둘째 마당 - 기본 그래프 그리기 UNIT 04 - 02 iphfly1030.tistory.com/123?category=970834 둘째 마당 - 기본 그래프 그리기 UNIT 04 - 01 matplotlib 파이썬 데이터 시각화에 가장 많이 쓰이는 라이브러리입니다. https://matplotlib.org Matplotlib: Python plotting — Matplotlib 3.3.4 documentation matplotlib.org 해당 사이트 Tutorial 부분에.. iphfly1030.tistory.com 지난 포스팅에 이어 그래프에 옵션 넣는 법에 대해 공부해보겠습니다. 그래프에 제목 넣기 title() 함수를 이용합니다. import matplotlib.pyplot as plt plt.title('plotting') plt.plot([10,..
밑시딥 - 퍼셉트론의 한계 퍼셉트론은 AND, NAND, OR 게이트를 훌륭하게 해결했습니다. 그렇다면 XOR 게이트는 어떨까요? XOR게이트는 배타적 논리합이라는 논리회로입니다. x1과 x2 중 하나가 1일때만 1을 출력합니다. x1 x2 y 0 0 0 1 0 1 0 1 1 1 1 0 위 진리표를 구현할 수 있는 매개변수를 퍼셉트론을 통해 구할수있을까요? 답은 불가능하다입니다. wikidocs.net/24958 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 해당 링크에 가보시면 그래프상에서 직선으로 점을 구분하고 있을겁니다. 간단히 설명을 하자면 퍼셉트론은 직선(선형)으로 점을 구분할 순 있지만 곡선(비선형)으로는 구분이 불가하기 때문에 XOR 게이트 구현이 불가능하다는 설명입니다. 그렇다면 퍼셉트론으..
밑시딥 - 퍼셉트론 구현(가중치와 편향) iphfly1030.tistory.com/124?category=970399 밑시딥 - 퍼셉트론(Perceptron)이 뭘까? 퍼셉트론 : 다수의 신호를 입력 받아 하나의 신호로 출력하는 알고리즘 다수의 신호(x1, x2)를 입력(화살표)받아 하나의 신호(y)로 출력 x1과 x2는 입력신호, w1과 w2는 가중치, y는 출력신호 마지막으 iphfly1030.tistory.com 지난 포스팅에서 퍼셉트론과 AND, NAND, OR 게이트에 대해 알아봤습니다. 오늘은 논리회로를 파이썬으로 구현해보겠습니다. def AND(x1, x2): w1, w2, theta = 0.5, 0.5, 0.7 tmp = x1*w1 + x2*w2 if tmp theta: return 1 x1과 x2를 인수로 받는 AND 함수입니다..