본문 바로가기

전체 글88

[Deep Learining] 텐서플로우-케라스 신경망을 이용한 선형회귀분석 [코드 분석] 모듈 불러오기 import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Input, Dense from tensorflow.keras import initializers # y = 3*x1 + 5*x2 + 10 [모델 생성] input data가 2개 hidden layer의 뉴런 16개 따라서 2*16 + 16(bias) = 48개입니다. def generator_sequential_model(): model = Sequential( [ Input(2, name = 'input_layer'), #첫 Layer에서 2개의 변수로부터 값을 받고 Dense(16, act.. 2020. 11. 30.
[부스트캠프] - 시간복잡도 개념 www.youtube.com/watch?v=6Iq5iMCVsXA 유튜브 참고해서 시간복잡도를 배워보았습니다. 시간복잡도란? 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. 컴퓨터과학에서 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것이다. 알고리즘의 시간복잡도는 주로 빅-오 표기법을 사용하여 나타내며, 이 빅-오 표기법은 계수와 낮은 차수의 항을 제외시키는 방법이다. 이런 방식으로 표현할 때, (예를 들면, 입력 크기를 무한대로 입력하여) 시간복잡도를 점근적으로 묘사한다고 말한다. (출처 : 위키백과) 위키백과에서 언급한 점근적으로 묘사한다고 한것은, 시간복잡도를 계산하는데 있어 실제시간을 계산하는것이 아니다. 그렇.. 2020. 11. 30.
[프로그래머스] Lv.1 - 문자열 내 마음대로 정렬하기 def solution(strings, n): answer = [] alphas = [] for i in range(0,len(strings)): word_index = strings[i][n] # strings내에 있는 index = n에 해당하는 알파벳 alphas.append(word_index) # 모두 모으기 alphas = sorted(alphas) # 모은 알파벳들 오름차순으로 정렬 strings = sorted(strings) # strings 오름차순 정렬 for i in alphas : # 단어의 n번째 알파벳들 하나씩 뽑는다. for k in range(0,len(strings)): # strings를 돌면서 n번째 알파벳들이 있는 단어를 찾는다. if strings[k][n] == .. 2020. 11. 26.
[프로그래머스] Lv.1 - 문자열 다루기 기본_파이썬 이 문제를 풀때, 문제 설명에서의 조건을 빼놓고 작성하여 계속 테스트에서 오답이 나왔습니다. 빠뜨렸던 문제 조건은 "문자열 s의 길이가 4혹은 6" 이라는 조건을 빼고 실행했었습니다..ㅠ s의 길이가 1이상, 8이하라고해서.. 라고 변명을 해보지만, 코딩테스트 문제를 풀때도 마찬가지로 문제를 잘 읽어야한다고 느끼게 되었습니다. 이 문제는 문자열에서 숫자만 있는 문자열을 구분하는 함수 만들기입니다. 따라서 문자열에서 하나하나 탐색을 하며 해당 문자가 숫자인지 숫자가 아닌지만 판단을 해주면 되도록 했습니다. 따라서 try except를 통한 예외처리문을 사용하였고, 문자열의 요소를 for문을 통해 하나하나씩 탐색하도록 했습니다. answer을 기본값으로 True를 할당하였습니다. 해당 문자열의 요소가 flo.. 2020. 11. 26.
[프로그래머스] Lv.1 - 같은 숫자는 싫어_파이썬 효울성까지 체크하는 문제가 나왔습니다! 효율성이 시간 복잡도로 측정한다는 말을 얼핏 들은거 이외에는 효율성에 대해 잘 모르겠습니다..ㅠ.ㅠ 같은 숫자는 싫어는 숫자 listt arr에서 연속된 숫자를 제외하고 모든 숫자를 return 하는 문제입니다. 따라서 첫번째 고려사항은 중복된 숫자가 나오지 않게 막아줘야 했습니다. 이를 위해서 저는 if else문을 통해 조건문을 이용했습니다. if문으로 맨 마지막에 추가된(제일 최근에 추가된)숫자가 지금 추가되려는 숫자와 같다면 pass 그렇지 않다면(제일 최근에 추가된 숫자와 다르다면) 지금 숫자(i)를 추가하도록 했습니다. 하지만 제일 처음 실행했을때, return하는 answer의 리스트가 비어있었기 때문에 answer[-1]이 에러가 났습니다. 따라서 제.. 2020. 11. 26.
[Deep Learning] What is D/L? 딥러닝이란? 딥러닝이란 무엇인가? 딥러닝 알고리즘은 여러 계층의 계층 구조를 사용하여 표현을 학습(복수 수준)하려고 시도함 시스템에 엄청난 양의 정보를 제공하면 다음과 같은 작업이 시작됨 그것을 이해하고 유용한 방법으로 대응한다. 효과적인 엔드 투 엔드 공동 시스템 학습 대량의 교육 데이터 활용 딥러닝은 시각적, 언어적 정보를 표현하기에 매우 유연하고 학습 가능한 프레임워크를 제공한다. 딥러닝이 가장 혁신을 이루어낸 분야 : 이미지처리, 자연어(NLP)처리 (네이버 papago) 2010년 이후 Deep Neural Network로 인해 Deep Learning이 다시 각광을 받고있다. 그 이유는 크게 두 가지로 뽑을 수 있다. 첫째, 굉장히 많은 데이터가 사용가능하게 되었고, 둘째, 병렬처리 도구, 환경이(GPU .. 2020. 11. 25.
[프로그래머스] Lv.1 - 두 정수 사이의 합_파이썬 더보기 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. a와 b의 대소관계는 정해져있지 않기때문에 디폴트 가정으로 a가 b보다 작거나 같다고 가정하였습니다. 그리고 a가 b보다 크게되면, a,b를 바꾸어서 for문으로 들어가게됩니다. 그러면 이제 작은 수(a)부터 큰 수(b)까지의 수를 하나씩 증가하며 answer에 더하게 됩니다. 이때, range의.. 2020. 11. 25.
[프로그래머스] Lv.1 - 문자열 내 p와 y의 개수_파이썬 더보기 문제 소개 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 저는 문자열 s를 모두 대문자로 바꾸고 대문자로 바뀐 문자열s에서 count를 통해 대문자 P 와 Y의 개수를 세었습니다. 그리고 조건문을 통해 P의 개수와 Y의 개수가 같다면 answ.. 2020. 11. 25.
[프로그래머스] Lv1 - 3진법 뒤집기_파이썬 이 문제는 3진법 뒤집기이다. 처음 입력받은 n을 3진법으로 변환 후 3진법을 앞뒤 반전시키고 앞뒤가 반전된 3진법을 다시 10진법으로 표현하는 것이다. 따라서 총 3단계로 나누어서 계획을했다. n을 3진법으로 표현 3진법을 앞뒤 반전시키기 앞뒤 반전된 삼진법을 10진법으로 표현하기. 우선 3진법은 y = (0,1,2) * 3^0 + (0,1,2)* 3^1 + (0,1,2) * 3^3 + (0,1,2)* 3^4 + ···· 으로 계산할 수 있다. 따라서 입력받은 값 n = 45라면, 3^3 = 27 과 2* 3^2 =18 의 합으로 만들 수 있다. 이 원리를 가지고 n을 3진법으로 표현 def solution(n): answer = [] for i in range(30, -1 , -1): # 나눌 수 있.. 2020. 11. 24.
K-Means Algorithms 1) 랜덤으로 K개 벡터 선택 2) 선택되지 않은 벡터들(검은색)을 선택 된 K개 벡터에 가까운 벡터에 할당(assign)한다. 3) 빨강, 파랑의 벡터들의 centroid를 각 각 계산한다. -> 빨강색 X(centroid) 지점과 파랑색 X지점을 찾을 수 있다. 4) 위에서 구한 centroid에서 reassign 진행한다. ( 각 각의 centroid에 가까운 벡터들을 assign) 5) reassign한 후 빨강, 파랑의 벡터들의 새로운 centroid를 각 각 계산한다. 6) 4,5 과정을 계속해서 반복한다. centroid의 변화가 없을때까지 ( 계속 된 reassign에도 일치되는 centroid 찾을 때까지) 반복한다. centroid의 변화가 없고 반복이 멈추었다면, 최종으로 두개(k개).. 2020. 11. 24.
[M/L - Classification]Logistic Regression (feat. Linear Regression) Machine Learning 에는 지도학습( Supervised Learning)과 비지도학습(Unsupervised Learning)이있다. 여기서 지도학습에는 Regression(회귀)와 Classification(분류)가 있다. 두 가지의 특징을 간단히 알아보자. 두 가지 특징을 알기에 앞서 독립변수와 종속변수의 개념을 알아야한다. 일반적으로 독립변수는 주어진 데이터 값 ( x 값) , 종속변수는 독립변수에 의해 영향을 받는 값 (y 값) 이렇게 표현할 수있다. Regression (회귀) 독립변수에 대해서 종속변수 값이 연속형(Continuous) 값으로 나타난다. 독립변수 모델링을 통해 종속변수를 구하고 실제 값을 예측하는 것 ex) [키 185cm, 162.7cm] [온도 : 25.3도 , .. 2020. 11. 24.
[부스트코스] 캐글 실습으로 배우는 데이터 사이언스 - 사이킷런 사이킷런을 함축해서 표현할 수 있는 표 (Cheat-Sheet)이다. 크게 4가지로 구분할 수 있다. 1) Classification (분류) 2) Regression (회귀) 3) clustering (군집화) 4) Dimensionality Reduction (차원 축소) 1) Classification은 분류하는 것으로써 시험에서 (합격 / 불합격) 혹은 점심을 (먹음 / 먹지 않음) (학생이다 / 학생이 아니다) 등을 측정하며 이용한다. 2) Regression은 회귀로써, x와 y값 선형관계를 파악하는 것이다. 독립변수(x값)데이터에 따라서 종속변수(y값)가 얼마나 변하는지에 대한 예측에 이용한다. 이 부스트코스 - 캐글 실습 캐글 실습으로 배우는 데이터 사이언스에서 실습하고있는 자전거 데이터 .. 2020. 11. 23.