python 58

머신러닝 교과서, 2.2, python

*본 포스팅은 머신러닝 교과서를 참고하여 작성되었습니다~! 2.2 파이썬으로 퍼셉트론 학습 알고리즘 구현 2.2.1 객체 지향 퍼셉트론 API import numpy as np class Perceptron(object): """퍼셉트론 분류기 매개변수 --------------- eta : float 학습률 (0.0과 1.0 사이) n_iter : int 훈련 데이터셋 반복 횟수 random_state : int 가중치 무작위 초기화를 위한 난수 생성기 시드 속성 --------------- w_ : 1d-array 학습된 가중치 errors_ : list 에포크마다 누적된 분류 오류 """ def __init__(self, eta=0.01, n_iter=50, random_state = 1): sel..

Chapter8. 딥러닝, DL from Scratch, python

* 본 포스팅의 내용은 모두 밑바닥부터 시작하는 딥러닝 을 참고하여 작성한 내용입니다. 8.1 더 깊게 8.1.1 더 깊은 신경망으로 여기에서 사용하는 합성곱 계층은 모두 3X3 크기의 작은 필터로, 층이 깊어지면서 채널 수가 더 늘어나는 것이 특징이다.(합성곱 계층의 채널 수는 앞 계층에서부터 순서대로 16, 16, 32 , 32, 64, 64 로 늘어간다) 또 그림과 같이 풀링 계층을 추가하여 중간 데이터의 공간 크기를 점차 줄여간다. 그리고 마지막 단의 완전연결 계층에서는 드롭아웃 계층을 사용한다. 가중치 초깃값 : He 초깃값 가중치 매개변수 갱신 : Adam 위의 신경망의 특징 - 3 x 3의 작은 필터를 사용한 합성곱 계층 - 활성화 함수는 ReLU - 완전연결 계층 뒤에 드롭아웃 계층 사용 ..

Chapter.7.1~7.2 합성곱 신경망(CNN), DL fram Scratch, python

* 본 포스팅의 내용은 모두 밑바닥부터 시작하는 딥러닝 을 참고하여 작성한 내용입니다. 이번 장의 주제는 합성곱 신경망(convolution neural network, CNN) 이다. CNN은 이미지 인식과 음성 인식 등 다양한 곳에서 샤용되는데, 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다. 이번 장에서는 CNN의 메커니즘을 자세히 설명하고 이를 파이썬으로 구현해본다. 7.1 전체 구조 CNN도 지금까지 본 신경망과 같이 레고 블록처럼 계층을 조합하여 만들 수 있다. 다만, 합성곱 계층(convolutional Layer)과 풀링 계층(pooling Layer) 이 새롭게 등장한다. 지금까지 본 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었다. 이를 완전연결(..

프로그래머스, level2, 위장, python

문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cloth..

Chapter6.2 가중치의 초깃값, DL from Scratch, 파이썬

6.2 가중치의 초깃값 신경망 학습에서 특히 중요한 것은 가중치의 초깃값이다. 가중치의 초깃값을 무엇으로 설정하느냐가 신경망 학습의 성패가 가르는 일이 있다. 이번 절에서는 권장 초깃 값에 대해서 설명하고 실험을 통해 실제로 신경망 학습이 신속하게 이뤄지는 모습을 확인하겠다. 6.2.1 초깃값을 0으로 하면? 가중치 감소(weight decay) 기법 : 가중치 매개변수의 값이 작아지도록 학습하는 방법이다. 즉, 가중치 값을 작게 하여 오버피팅이 일어나지 않게 하는 것이다. 그렇다면 가중치의 초깃값을 모두 0으로 설정한다면 어떨까? 이는 나쁜 아이디어인데, 실제로 가중치 초깃값을 0으로 하면 학습이 올바로 이뤄지지 않는다. 그 이유는 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문이다. 6.2...

DataFrame, Join Type의 종류, python

판다스의 DataFrame은 테이블 형식의 데이터 셋이다. 각 DataFrame이 공통 컬럼(필드)가 존제 한다면, DataFrame 끼리 Join을 할 수 있다. Join의 방식에는 4가지가 존재한다. 1. Outer Join 2. Inner Join 3. Left Join 4. Right Join 각각의 방식을 예시 코드를 통해 어떻게 Join이 되는지 알아보자! import pandas as pd df1 = pd.DataFrame({'a' : ['a', 'b', 'c'],'b':[1, 2, 3]}) df2 = pd.DataFrame({'a' : ['a', 'b', 'd'],'c':['가', '나', '다']}) >> df1 = a b 0 a 1 1 b 2 2 c 3 >> df2 = a c 0 a 가..

데이터분석 2022.11.11

스택(Stack)과 큐(Queue), python

이미지 출처 : https://medium.com/omarelgabrys-blog/stacks-and-queues-d96c6f35fae3 스택(Stack) - 먼저 들어 온 데이터가 나중에 나가는 형식(선입후출)의 자료구조이다. - 입구와 출구가 동일한 형태이다. 스택 구현 파이썬에서의 스택 구현은 리스트를 활용하여 구현할 수 있다. stack = [] # 삽입(5) > 삽입(2) > 삽입(3) > 삽입(7) > 삭제() > 삽입(1) > 삽입(4) > 삭제() stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack[::-1]..

딕셔너리 value 추가 하기, 프로그래머스 위장

프로그래머스 문제 level 2 위장을 풀다가 기존에 생성해 놓은 딕셔너리 value에 값을 추가해보았다. 일반적으로 우리가 생각하는 딕셔너리 값을 추가하는 방법은 key와 쌍으로 추가하는 방법인데 다음과 같다. dic = {} dic[key] = [value] print(dic) >> {"key" : [value]} 하지만 나는 기존에 존재하는 key에 해당하는 value 값을 추가하고 싶었는데, dic = {"key" : [value1, value2]} 이렇게 만들고 싶었는데, 구글링을 해서 마침내 방법을 알게 되었다.(일반적인 방법밖에안나와서 고생함..) 방법은 다음과 같다! # 다음과 같은 딕셔너리가 존재할 때 clothes = {'headgear' : ['yellow_hat']} # headge..

DFS/BFS 연습문제, python

문제 설명 N x M 크기의 얼음 틀이 있습니다. 구멍이 뚫려있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시됩니다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주합니다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하세요. 다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성됩니다. 입력조건 - 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로길이 M이 주어집니다.(1

프로그래머스, [1차] 캐시, python, 파이썬

문제 설명 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. 입력 형식 캐..