일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- numpy
- 코드잇
- 데이터분석
- sql연습문제
- 유학생
- 파이썬
- 코딩독학
- 선형회귀
- 다항회귀
- SQL
- 코드잇TIL
- CSS
- 코드잇 TIL
- 나혼자코딩
- 코딩
- 코딩공부
- matplotlib
- 행렬
- 결정트리
- Seaborn
- for반복문
- HTML
- 윈도우함수
- 런던
- 머신러닝
- 오늘도코드잇
- 경사하강법
- 판다스
- 로지스틱회귀
- 영국석사
- Today
- Total
목록코딩공부 (179)
영국 척척석사 유학생 일기장👩🏻🎓
로지스틱 회귀를 코드로 구현하기 쉽게 바꾸는 것을 해봅시다. 1. 입력 변수와 파라미터 표현 입력 변수와 파라미터는 선형 회귀를 표현할 때와 똑같이 할 수 있습니다. 모든 입력 변수 데이터를 설계 행렬에 나타내면 아래와 같습니다. 그리고 파라미터를 하나의 벡터로 아래와 같이 표현할 수 있습니다. 2. 모든 데이터 예측 값 가설 함수를 행렬 연산에서 어떻게 표현할 수 있는지 알아봅시다. 위에서 한 것처럼 입력 변수와 파라미터를 표현하면 모든 데이터에 대해서 이 식을 계산할 수 있습니다. 이 부분은 선형 회귀를 할 때와 동일합니다. 근데 로지스틱 회귀는 선형 회귀와 가설함수 h가 다릅니다. 위에서 계산한 모든 결과 값을 시그모이드 함수에 넣어주어야 합니다. 계산한 Xtheta의 모든 원소를 시그모이드 함수에..
이전 글에서 로지스틱 회귀의 가설 함수와 손실 함수에 대해 알아보았습니다. 이제 경사 하강법을 알아봅시다. 우리가 해야 하는 것은 손실을 최소화하는 것인데 경사 하강법은 그 손실을 최소화하는 하나의 방법입니다. 경사 하강법을 하는 방법은 가설 함수와 손실 함수는 좀 다르지만 선형 회귀와 거의 똑같습니다. 처음에는 세타 값들을 모두 0으로 지정하거나 모두 랜덤하게 지정합니다. 어디선가는 시작해야 하기 때문입니다. 그러면 현재 세타 값들에 대한 손실, 즉 현재 가설 함수에 대한 손실을 계산할 수 있습니다. 여기서부터 시작해서 세타를 조금씩 조율하면서 손실을 계속 줄여나가야 하는 것입니다. 예를 들어서 세타0,1,2 이렇게 세타 값이 3개 있다고 가정해봅시다. 앞 글에서 설명한 대로 손실 함수를 세타0에 대해..
선형 회귀에서 가설함수가 있었고, 선형 회귀를 통해 하려고 하는 건 학습 데이터에 최대한 잘 맞는 가설 함수를 찾는 것 입니다. 그러려면 가설 함수를 평가하는 어떤 기준이 있어야 하는데, 그 기준이 되는 게 손실 함수입니다. 로지스틱 회귀에서도 마찬가지 입니다. 데이터에 잘 맞는 가설 함수를 찾는 거고, 손실 함수를 이용해서 가설 함수를 평가하는 것입니다. 가설 함수랑 손실 함수가 좀 다르게 생겼을 뿐입니다. 로지스틱 회귀의 가설 함수는 아래와 같다고 지난 글에서 배웠습니다. 그럼 로지스틱 회귀의 손실 함수를 알아보겠습니다. 선형 회귀의 손실 함수는 평균 제곱 오차라는 개념을 기반으로 했습니다. 데이터 하나하나의 오차를 구하고, 그 오차들을 다 제곱해서 평균을 내는 작업을 했었습니다. 로지스틱 회귀의 손..
저번 글에서 로지스틱 회귀를 하기 위해서는 가설 함수에 대하여 최적의 theta값을 찾아내야 한다고 하였습니다. 가설 함수의 결곽값은 주어진 데이터 x가 특정 분류(분류1)일 확률을 리턴합니다. 그렇기 때문에 h의 결괏값이 0.5 이상이면 1로, 0.5면 0으로 분류했었습니다. 1. 속성이 하나일 때 예를 들어 공부 시간으로 시험을 통과했는지 탈락했는지 예측하고 싶다고 해봅시다. 그럼 속성이 하나니까 아래와 같은 가설 함수가 있습니다. 이렇게 x에 100시간을 넣어서 0.9가 나오면 100시간 공부한 학생이 시험을 통과할 확률은 90%인 거고, x에 40시간을 넣어서 0.4가 나오면 40시간 공부한 학생이 시험을 통과할 확률은 40%라고 해석할 수 있습니다. 그렇기 떄문에 가설 함수의 아웃풋이 0.5인 ..
선형 회귀를 이용해서 분류를 할 수 있긴 하지만, 선형 회귀는 예외적인 데이터에 너무 민감하게 반응한다는 단점이 있습니다. 그래서 분류를 할 때는 보통 선형 회귀 대신 '로지스틱 회귀(logistic regression)'을 사용합니다. 1. 로지스틱 회귀 로지스틱 회귀와 선형 회귀의 차이점을 알아봅시다. 데이터가 있으면 선형 회귀는 여기에 가장 잘 맞는 직선을 찾는 것입니다. 즉 일차함수를 찾는 것입니다. 로지스틱 회귀는 데이터에 가장 잘 맞는 일차함수가 아니라 데이터에 가장 잘 맞는 시그모이드 함수를 찾는 것입니다. 2. 시그모이드 함수 시그모이드 함수 식은 아래와 같습니다. 그래프로 그리면 아래와 같이 생겼습니다. 시그모이드 함수의 가장 중요한 특징은, 무조건 0과 1사이의 결과를 낸다는 것입니다...
머신 러닝은 지도 학습과 비지도 학습으로 나뉩니다. 그리고 지도 학습은 회귀와 분류로 나뉩니다. 회귀는 연속적인 값을 예측하는 것이고, 분류는 정해진 몇 개의 값 중에 예측하는 것입니다. 앞서 회귀에 대한 글을 올렸습니다. 이제 분류 문제를 봅시다. 예를 들어 어떤 이메일이 스팸인지 아닌지, 아니면 어떤 기사가 스포츠 기사인지 정치 기사인지 연예 기사인지 분류해 볼 것입니다. 보통 분류 문제를 풀 때는 각 결괏값에 어떤 숫자 값을 지정해 줍니다. 예를 들어 이메일이 스팸인지 아닌지 분류 한다면, 보통 이메일에는 0이라는 값을 주고 스팸 이메일에는 1이라는 값을 주는 것입니다. 이메일의 속성들을 가설 함수에 넣어서 0이 나오면 보통 이베일이고 1이 나오면 스팸 이메일이라고 할 수 있습니다. 만약 어떤 기사..
1. link 태그 외부에 있는 것을 불러올 때 사용하는 태그입니다. 어떤 목적인지를 rel 속성에 적습니다. 위치는 href로 지정하면 됩니다. 주로 사이트 아이콘을 불러올 때는 rel="icon"라고 씁니다. 2. 를 꼭 써주어야 합니다. ... 3. 4. 시맨틱 태그 와 기능은 똑같지만 의미가 담겨있는 태그들을 시맨틱 태그라고 합니다. 사용법이 있는것은 아니고 작성하는 사람의 의도가 중요합니다. 시맨틱 태그를 잘 활용하면 검색 엔진 최적화(SEQ)나 접근성(Accessibility)를 높이는데 도움이 됩니다. 태그 이름 용도 영역 위쪽에서 로고나 제목, 메뉴 같은 걸 담고 있는 도입부 사이트의 본격적인 내용으로 페이지에서 딱 한 번만 사용 가능 영역 아래쪽에서 여러 가지 연락처나 관련 정보를 담고 ..
1. 다중 다항 회귀 입력 변수가 많은데 다항 회귀를 하는 것을 '다중 다항 회귀'라고 합니다. 예를 들어 봅시다. 입력 변수가 집 크기만 있는게 아니라 방, 수, 지하철역 까지의 거리도 있습니다. 각각x1, x2, x3라고 이름을 붙입시다. 그리고 목표 변수는 똑같이 집 가격 입니다. 가설 함수가 이차 함수라고 가정해봅시다. 이차 함수니까 제일 큰 항이 이차항이어야 합니다. 이차항이랑 변수 두 개가 곱해진 것입니다. x1제곱도 이차하이고, x1과 x2의 곱도 이차항 입니다. 따라서 x1x2, x2x3, x3x1, x1제곱, x2제곱, x3제곱 이렇게 6개 입니다. 그러면 가설 함수는 아래와 같이 생겼습니다. 맨 앞에 상수항이 있고, 그 다음은 일차항들이고, 그 다음은 이차항이 있습니다. 이 6가지에 대..
1. 단일 속성 다항 회귀 다항 회귀도 두 가지로 나뉩니다. 속성이 하나인 경우랑, 속성이 많은 경우, 속성이 많고 다항 회귀를 하면 '다중 다항 회귀' 라고 부릅니다. 속성이 하나인 경우부터 봅니다. 집 크기를 이용해서 집 가격을 예측한다고 합시다. 선형 회귀에서 가설 함수는 다음과 같습니다. 우리가 선형 회귀를 통해 하려는 건, 학습 데이터에 가장 잘맞는 세타0, 세타1을 찾아내는 것입니다. 선형 회귀가 아니라 다항 회귀를 한다면, 가설 함수가 이차함수라면 아래와 같이 생겼을 것입니다. 선형 회귀와 마찬가지로, 다항 회귀에서 하려는 건 학습 데이터에 가장 잘 맞는 세타0,세타1,세타2를 찾아내는 것입니다. 만약 가설 함수가 삼차함수라면 아래와 같이 생겼습니다. 이 경우에도 학습 데이터에 가장 잘 맞는..
1. 기본적인 폼의 형태 아이디 비밀번호 로그인 2. 라벨 태그로 을 감싸면 라벨을 클릭했을 때 인풋에 포커싱이 됩니다. 아이디 라벨의 for 속성과 인풋의 id 속성을 일치시키면 클릭했을 때 인풋에 포커싱이 됩니다. 아이디 3. 인풋 name 속성은 폼을 전송했을 때 입력한 값에 매칭되는 이름입니다. 아래 코드에서는 인풋에 입력한 값이 username이라는 이름에 매칭됩니다. 아이디 type 속성을 사용하면 다양한 인풋을 사용할 수 있습니다. 대표적으로 입력한 값을 가려주고 싶을 때는 type="password"를 사용합니다. 비밀번호