혼공학습단 7기 혼자 공부하는 머신러닝+딥러닝 3주차 미션

3주차 미션 범위 : Chapter 04 미션 : Chapter 04(04-1) 2번 문제 풀고, 풀이 과정 설명하기 선택미션 : Chapter 04(04-2) 과대적합/과소적합 손코딩 코랩화면 캡쳐하기  미션 1. Chapter 04(04-1) 2번 문제 풀고, 풀이 과정 설명하기 문제 - 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요? 1) 시그모이드 함수 * 풀이 설명 - 로지스틱 회귀 : 선형 방정식을 사용한 분류 알고리즘 a,b,c,d,e는 가중치 혹은 계수이다. 여기서 결과값인 z값을 어떤 값이든 가능하지만 확률이 되게 하기 위해 0 ~ 1(0~100%)의 값이 되어 합니다. 이를 위해 시그모이드 함수(로지스틱 함수)를 사용합니다. -> 이름부터가 로지스틱 회귀를 위한 함수이죠? - 시그모이드 함수 : S자형 곡선 또는 시그모이드 곡선을 갖는 수학 함수로 수식과 그래프는 아래와 같습니다. --> 뭔가 이전에 2주차 미션때 했던 과대 과소적합의 그래프를 살짝 비슷하게 닮았군요. 30정도 학습시키면 이와 비슷한 모양이 나왔었죠.. 40이 넘어가면서 직선화 되었는데.. 그러면 이 그래프도 직선과 비슷하게? 보이게 할 수 있을지... 확인해보죠 p.184를 보시면 간단하게 구현한 소스코드가 나오는데...  z = np.arange( -5 , 5 , 0.1 ) 의 범위를 바꿔보겠습니다. (-10,10,0.1)로 바꾸니 경사가 급격해졌습니다. 그러면 (-1,1,0.1)로 바꿔보니 일차 방정식의 형태로 나타났습니다. 저기 저 경사부분을 완만하게 늘리면 y = a 꼴로 나오지 않을까 하여 여러가지 값을 바꾸며 확인해봤지만 아래와 같이 직선의 방정식 형태로만 나타났습니다. 이유는 분류를 하기 위한 모델이기 때문인 것 같습니다. (수식이 그렇게 나올 수 없기 때문이겠죠?)  선택미션 1. Chapter 04(04-2) 과대적합/과소적합 손코딩 코랩화면 캡쳐하기  빨간색으로 표시한 부분이 과대적합/과소적합 부분이다. 300번을

혼공학습단 7기 혼자 공부하는 머신러닝+딥러닝 2주차 미션

이미지
2주차 미션 범위 : Chapter 03 미션 : Chapter 03(03-1) 2번 문제 출력 그래프 인증 선택미션 : 모델 파라미터에 대해 설명하기 미션 1. Chapter 03(03-1) 2번 문제 출력 그래프 인증 # 문제     - 과대적합과 과소적합에 대한 이해를 돕기 위해 복잡한 모델과 단순한 모델을 만들겠습니다. 앞서 만든 k-최근접 이웃 회귀 모델의 k 값을 1,5,10으로 바꿔가며 훈련해 보세요. 그다음 농어의 길이를 5에서 45까지 바꿔가며 예측을 만들어 그래프로 나타내 보세요. n이 커짐에 따라 모델이 단순해지는 것을 볼 수 있나요? * 요점은 k 값이 바뀜에 따라 어떻게 되는지 알아보라는 것 같다. * n이 증가 됨에 따라 모델이 단순해졌다. 어디까지 단순해지나 확인해봤는데 42까지 훈련을 시키면 직선이 되버린다. 선택미션 1. 모델 파라미터에 대해 설명하기  * 모델 파라미터 - 학습 프로세스를 제어하는데 사용되는 값을 갖는 매개변수, 사용자가 직접 세팅해주는 값이다. 이와 비교하는 파라미터가 있다. * 파라미터 - 데이터를 통해 모델이 학습하는 매개변수, 모델이 예측을 하기 위해 학습을 하는 매개변수, 데이터로부터 모델 내부에서 결정되는 변수

혼공학습단 7기 혼자 공부하는 머신러닝+딥러닝 1주차 미션

이미지
 1주차 미션 범위 : Chapter 01~02  미션 : 코랩 실습화면 갭쳐하기 선택미션 : Ch.02(02-1) 확인 문제 풀고 풀이 과정 정리하기 1. 코랩 실습화면 캡쳐하기 1-1. Chapter 1 1-2. Chapter 2 2. Ch.02(02-1) 확인 문제 풀고 풀이 과정 정리하기 1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가요? -> 지도학습 # 지도 학습은 입력과 타깃을 전달하여 훈련하여 새로운 데이터를 예측하는 것이다. # 이와 반대로 타깃 데이터가 없는 비지도 학습이 있다.  2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요? -> 샘플링 편향 # 일반적으로 훈련 세트와 테스트 세트에 샘플이 골고루 섞여 있지 않으면 샘플링이 한쪽으로 치우쳤다는 의미로 사용됨 3. 사이킷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요? -> 행(샘플),열(특성) # 교재 75쪽에 그림과 같이 나와 있다.  # print(input, target)이라고 했을 때, (샘플 수, 특성 수)를 출력한다.

자바스크립트 벽돌깨기

https://developer.mozilla.org/ko/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript 에서 따라서 해봤습니다. 키보드 방향키로 좌우 이동 가능합니다.

로또 번호 추출 - 자바스크립트

출력 혹시 당첨되시면 등수를 댓글로 달아주세요 ㅎㅎ

주피터노트북 파일(ipynb)를 py로 변경하기 in PyCharm

이미지
PyCharm을 실행합니다. PyCharm아래를 보면 Terminal이 있는데 이곳을 클릭하고 아래의 명령어를 입력합니다. nbconvert를 설치하는 명령어 입니다. 설치를 하셨다면 변환을 합시다. 저는 프로젝트로 파일을 옮겨서 실행했습니다. 여러개의 파일일 경우 파일명 대신에 *를 입력하여 실행합니다. -------------------------------------------------- pip install nbconvert jupyter nbconvert --to script filename.ipynb  jupyter nbconvert --to script *.ipynb --------------------------------------------------

C언어 스택

이미지
 스택 많이 사용되는 자료구조입니다. Fist in Last out의 구조로 되어 있습니다. 예를들어 1,2,4,5,6의 순서로 스택에 저장되어 있으면 출력은 6,5,4,2,1의 순서입니다. 보통 데이터를 넣는 것은 Push 데이터를 빼는 것은 Pop이라고 합니다. input, output으로 해도 됩니다. 중요한건 어떻게 저장되어 있냐는 거니까요 스택에 Push 할때는 2,3,1,7의 순서로 저장되고 Pop일 때는 7,1,3,2의 순서입니다. 이를 리스트로 나타내면 다음과 같은 과정입니다. 리스트 스택 삽입과정(Push) 스택의 제일 마지막에 있는 부분을 Top이라고 합니다. 새로운 노드를 추가할 때, 새로운 노드가 이전의 Top를 가리키고 새로운 노드를 Top으로 지정해주면 됩니다. 리스트 스택 삭제과정 스택의 제일 마지막에 있는 노드의 이전 노드를 Top으로 지정하고 마지막 노드를 지운다. #include <stdio.h> #include <stdlib.h> #define INF 99999999 typedef struct { int data; struct Node * next; } Node; typedef struct { Node * top; } Stack; void push (Stack * stack, int data) { Node * node = (Node * )malloc( sizeof (Node)); node -> data = data; node -> next = stack -> top; stack -> top = node; } void pop (Stack * stack) { if (stack -> top == NULL ) { printf( "UnderFlow. \n " ); return - INF; } Node * node = stack -> top; int data = node ->