일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- GRU
- 스택
- 그리디
- 재귀함수
- 큐
- 다이나믹 프로그래밍
- 이진 탐색
- 계수정렬
- Machine Learning
- pytorch
- 알고리즘
- rnn
- 인공지능
- 삽입정렬
- 선형대수
- DFS
- 딥러닝
- RESNET
- 선택정렬
- BFS
- 퀵정렬
- LSTM
- 캐치카페신촌점 #캐치카페 #카페대관 #대학생 #진학사 #취준생
- 머신러닝
- AI
- 최단 경로
- 정렬
- Today
- Total
목록전체 글 (88)
hyeonzzz's Tech Blog

1. 더 많은 층의 심층 신경망심층 신경망이란 무엇일까?우리는 로지스틱 회귀를 매우 얕은 모델이라고 한다. 로지스틱 회귀는 한층의 신경망이다. 반면에 오른쪽 아래 모델은 더 깊은 모델이다. 은닉층의 개수는 또 다른 하이퍼파라미터가 된다. 다양한 값을 시도하고 검증 데이터에서 평가해야 한다. 심층 신경망 표기법그림은 4개 층의 신경망이다. 각각의 은닉층의 유닛 개수는 5, 5, 3이고 한 개의 출력 유닛이 있다.L : 네트워크 층 수 (4)n^[l] : l층에 있는 유닛 개수 (n^[1] = 5)a^[l] : l층에서의 활성값 (정방향 전파에서 a^[l] = g^[l](z^[l]))w^[l] : 가중치 a^[0] = X : 입력 특징a^[L] = ŷ ŷ : 예측된 출력 2. 심층 신경망에서의 정방향전..

7. 왜 비선형 활성화 함수를 써야할까요? 신경망이 흥미로운 함수를 계산하려면 비선형 활성화 함수가 필요하다.4개 식에서 g를 없애고 z^[1]로 대체하면 g(z) = z이다. 이건 선형 활성화 함수라고 부른다. 여기선 입력값을 출력값으로 내보내기 때문에 항등 함수라고 부르는게 더 맞다. a^[2]도 z^[2]로 만들어 준다. 모델은 ŷ을 입력 특성 x에 대한 선형 함수로 계산하게 된다. 첫 두 식을 보면 a^[1] = z^[1] = W^[1]x + b^[1]이 된다. a^[2] = z^[2] = W^[2]a^[1] + b^[2]가 된다. a^[1]을 두번째 식에 대입하면 a^[2] = z^[2] = W^[2]( W^[1]x + b^[1] ) + b^[2]가 되고 간소화하면 W'x + b'이 된다. 선..

1. 신경망 네트워크 개요 신경망을 어떻게 구현하는지에 대한 개요지난시간에는 로지스틱 회귀를 다뤘다. 왼쪽 위 모델은 오른쪽 위 계산 그래프와 일치한다. 특성 x와 변수 w, b를 입력하면 z를 계산한다. z는 ŷ = a를 계산하는데 쓰이고 마지막으로 손실 함수인 L을 계산할 수 있다.신경망은 sigmoid 유닛을 쌓아서 만들 수 있고 오른쪽 아래처럼 생겼다. 왼쪽 위 모델에서 노드는 z를 계산하고 a를 계산하는 두 단계로 이루어져 있다. 왼쪽 아래 신경망에서 첫번째 노드들은 z와 a를 계산하고, 두번째 노드들은 또 다른 z와 a를 계산한다. 앞으로 사용할 표기법은 다음과 같다. 첫번째 노드에서 특성 x와 변수 W와 b를 입력하면 z^[1]을 계산한다. ( x^[i]는 i번째 레이어를 뜻하고 x^(i)..
그리디 : 현재 상황에서 지금 당장 좋은 것만 고르는 방법 ※ 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 제시해준다! ※ 그리디 알고리즘 문제는 자주 정렬 알고리즘과 짝을 이뤄 출제된다 거스름돈 문제 예시 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라 (N은 항상 10의 배수이다) 해결방법 가장 큰 화폐 단위부터 돈을 거슬러 준다 예를 들어 N이 1,260이라면 500원 2개 100원 2개 50원 1개 10원 1개 파이썬 코드 n = 1260 count = 0 #큰 단위의 화폐부터 차례대로 확인 coin_types = [500, 100, 50, 10] for coin in coin_typ..

4. 분류(Classification) : 기존 데이터가 어떤 레이블에 속하는지 학습한 뒤에 새롭게 관측된 데이터에 대한 레이블을 판별하는 것 책에서는 앙상블 방법(Ensemble Method)을 집중적으로 다룬다. 정형 데이터의 예측 분석 영역에서는 앙상블이 매우 높은 예측 성능을 보이고 있다 앙상블 방식 : 서로 다른 또는 같은 알고리즘을 결합한다 여러 개의 약한 학습기(성능이 상대적으로 떨어지는)를 결합해 확률적 보완과 오류가 발생한 부분에 대한 가중치를 계속 업데이트하면서 예측 성능을 향상시킨다 배깅(Bagging) - 랜덤 포레스트 부스팅(Boosting) - 그래디언트 부스팅, XgBoost, LightGBM 1) 결정 트리 : 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분..

4) F1 스코어 : 정밀도와 재현율을 결합한 지표 어느 한 쪽으로 치우치지 않는 수치를 나타낼 때 높은 값을 가진다 f1_score( ) : F1 스코어를 구함 from sklearn.metrics import f1_score f1 = f1_score(y_test , pred) print('F1 스코어: {0:.4f}'.format(f1)) F1 스코어: 0.7966 임곗값을 변화시키면서 평가 지표 구하기 def get_clf_eval(y_test , pred): confusion = confusion_matrix( y_test, pred) accuracy = accuracy_score(y_test , pred) precision = precision_score(y_test , pred) recall ..

3. 평가 회귀를 위한 평가는 복잡하지 않기 때문에 분류의 평가를 더 집중적으로 알아볼 예정이다 특히 0과 1로 결정값이 한정되는 이진 분류의 성능 평가 지표를 알아보겠다 분류의 성능 평가 지표 정확도(Accuracy) 오차행렬(Confusion Matrix) 정밀도(Precision) 재현율(Recall) F1 스코어 ROC AUC 1) 정확도(Accuracy) : 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단 ※ 정확도만 이용하면 모델의 성능을 왜곡할 수 있기 때문에 정확도 수치만 가지고 판단하지 않는다 특히 불균형한 분포에서 정확한 평가 지표가 될 수 없다 2) 오차 행렬(Confusion Matrix) : 학습된 분류 모델이 예측을 수행하면서 얼마나 헷갈리고 있는지 함께 보여주는 지표 즉, ..

2. 사이킷런으로 시작하는 머신러닝 - 데이터 전처리 데이터에 미리 처리해야 할 기본사항 결손값 NaN, Null 값은 허용되지 않는다 -> 고정된 다른 값으로 변환해야 한다 문자열 값은 인코딩돼서 숫자형으로 변환해야 한다 데이터 인코딩 Label encoding : 문자열 값 -> 숫자형 카테고리 값 TV : 1, 냉장고 : 2, 전자레인지 : 3, 컴퓨터 : 4, 선풍기 : 5, 믹서 : 6 from sklearn.preprocessing import LabelEncoder items=['TV','냉장고','전자레인지','컴퓨터','선풍기','선풍기','믹서','믹서'] # LabelEncoder를 객체로 생성한 후 , fit( ) 과 transform( ) 으로 label 인코딩 수행. encode..
2. 사이킷런으로 시작하는 머신러닝 - Model Selection 모듈 소개 model_selection 모듈의 기능 학습 데이터와 테스트 데이터 세트를 분리 교차 검증 분할 및 평가 Estimator의 하이퍼 파라미터를 튜닝하기 위한 다양한 함수와 클래스 제공 학습/테스트 데이터 세트 분리 - train_test_split() 테스트 데이터 세트를 이용하지 않고 학습 데이터 세트만 학습하고 예측하면 정확도가 100%이다 모의고사 문제와 똑같은 본고사 문제가 출제된 것이랑 똑같다 따라서 예측을 수행하는 데이터 세트는 학습용 데이터 세트가 아닌 전용 테스트 데이터 세트여야 한다 1) 테스트 데이터 세트 30%, random_state=121 from sklearn.tree import DecisionTr..

정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 선택 정렬 : 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾼다 N=10인 경우 1. 처리되지 않은 데이터 중 가장 작은 '0'을 선택해 가장 앞의 '7'과 바꾼다 2. 처리되지 않은 데이터 중 가장 작은 '1'을 선택해 가장 앞의 '5'와 바꾼다 3. 처리되지 않은 데이터 중 가장 작은 '2'를 선택해 가장 앞의 '9'와 바꾼다 4. 이러한 과정을 반복하면 정렬이 완료된다 선택 정렬 python 코드 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i #가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if a..