목록분류 전체보기 (90)
오랑우탄의 반란
오늘도 오랑이는 문제를 풉니다. 체육복 풀이 과정 여분 체육복 학생이 도난 당하면 빌려줄 수 없음 → reserve 와 lost 의 공통 숫자 제거lost와 reserve 를 비교해서 가장 작은 수부터 제거 (그리디)answer 는 n - lost 개수우선 마지막 제한사항을 보면 여벌 체육복이 있는 학생이 도난당했을 경우, 해당 학생은 다른 학생에게 옷을 빌려줄 수 없게 된다는 조건이 있습니다. 이를 다른 말로 해석해보면, lost 와 reserve 에 같은 숫자가 있을 경우 해당 숫자는 1) 옷을 빌려줄 수 없기 때문에 reserve 에서 제거해야 하고 2) 이미 여분이 있기 때문에 옷을 빌릴 필요가 없어서 lost 에서도 제거해야 합니다. 즉 lost와 reserve 의 교집합을 제거하면 되는데, ..
로지스틱회귀란?독립변수 Y의 선형 결합을 이용해 사건의 발생 가능성을 예측하는 데 사용되는 통계 기법 로지스틱회귀 이론만약 X를 연속형 변수로 두고 Y 를 특정 값이 될 확률로 설정한다면, 앞서 배웠던 선형회귀로는 표현이 불가능할 것입니다. 선형 함수는 발산하기 때문에 실제 확률이 0보다 작거나 1보다 크게 나올 수도 있기 때문이지요. 그래서 이 한계를 보완하고자 로지스틱회귀를 사용합니다. 아래 그래프를 보시면 함수에 로그를 취해서 Y값이 0, 1로 수렴하도록 설계된 것을 볼 수 있습니다. 즉, Y가 특정 범주에 속할 때 범주형 변수에 대한 분석으로 로지스틱회귀가 적합합니다. 로지스틱회귀 수식로그함수가 어떻게 그려지는지 단계별로 살펴보겠습니다. 1. Odds RatioOdds ratio (오즈비)란..
다중선형회귀앞서 간단한 선형회귀 분석을 진행했는데요, 모든 데이터가 선형적인 관계를 보이면 참 좋겠지만 현실의 데이터는 비선형적인 관계를 지닐 때가 훨씬 많습니다. 그렇기 때문에 다중선형회귀분석이 더 많이 쓰일 수 있는데요, tips 데이터 중 수치형 데이터에 대해 분석을 진행했다면 이번에는 범주형 데이터를 인코딩(encoding)하는 과정까지 다뤄보도록 하겠습니다. 머신러닝 다중선형회귀분석 실습진행방법은 선형회귀와 동일한데요, 범주형 데이터를 간단하게 전처리하는 과정만 추가됩니다.라이브러리 설치는 생략하겠습니다. 데이터 확인 (Seaborn tips)범주형 데이터 인코딩 다중선형회귀 모델 훈련모델 평가 1. 데이터 확인사용할 tips 데이터를 다시 확인해줍니다. 해당 데이터에는 NaN 값이 없..
머신러닝 선형회귀분석 실습회귀분석은 scikit-learn 라이브러리에서 제공해주는 함수만 다룰 줄 알면 매우 간단한데요, 아래 단계에 따라 진행하겠습니다.사용할 라이브러리 설치데이터 확인 (Seaborn tips)선형회귀 모델 훈련모델 평가 1. 라이브러리 설치우선 사용할 라이브러리를 모두 import 해줍니다.import pandas as pd import matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport sklearn #scikit-learn으로 적으면 안됨 라이브러리 설치가 안 되어 있다면 pip 설치를 진행해주세요.! pip install 라이브러리 2. 데이터 확인 이번 실습에서 사용할 데이터는 Seaborn 라이브러..
선형회귀란?선형적인 관계를 가진 두 변수 X, Y에 대해 모르는 데이터 값을 예측하는 것 선형회귀 이론키(Y)와 몸무게(X) 분포가 아래와 같이 있다고 가정해봅시다. 이때 두 변수 사이에 일정하게 증가하는 패턴을 보고 우리는 몸무게를 알면 키를 예측할 수 있겠다고 생각할 수 있습니다. 하지만 실제로 각 값의 분포에 대해 예측 선을 무한하게 그릴 수 있는데요, 이때 데이터 분포를 가장 잘 설명해줄 수 있는 선을 그리는 것이 선형회귀입니다. weights = [87,81,82,92,90,61,86,66,69,69]heights = [187,174,179,192,188,160,179,168,168,174] 그러면 이 선을 어떻게 그리는 게 좋을까요? 바로 각각의 값에 대해 선과의 오차를 계산해서 최소의 오..
머신러닝이란? 관측된 패턴을 기반으로 의사 결정(예측, 분류)을 하기 위한 알고리즘 알고리즘이 문제풀이를 통해 해답을 찾아가는 과정이라면,머신러닝은 해답을 미리 학습시켜 스스로 문제풀이를 할 수 있게 설계하는 것 머신러닝 종류지도 학습 Supervised Leaning → 예측, 분류비지도 학습 Unsupervised Learning → 연관 규칙, 군집강화 학습 Reinforcement Learning → 보상 머신러닝 적용 분야머신러닝금융 신용평가, 사기탐지, 주식 예측 헬스케어 질병 예측, 환자 데이터 분석 이커머스 고객 구매 패턴 분석, 추천 시스템, 가격 최적화, 장바구니 분석 딥러닝 자연어처리 번역, 챗봇, 텍스트분석 이미지&영상처리 얼굴인식, 이미지 생성
오늘도 오랑이는 문제를 풉니다. 숫자 짝꿍 풀이 과정 1X 와 Y 의 각 숫자 비교, 일치할 경우 temp 리스트에 넣어주기 각각의 케이스 정의 (-1, 0, 내림차순 정렬 숫자)이때 첫 번째 조건에서 아래와 같은 예시에 있어 5가 3개 들어가는 것을 방지하기 위해 일치할 경우 Y의 숫자를 공백으로 대체해줍니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, Y에는 5가 2개 나타나므로 남는 5 한 개는 짝 지을 수 없습니다.)def solution(X, Y): answer = '' temp = [] for i in X: if i in ..
오늘도 오랑이는 문제를 풉니다. 185. Department Top Three Salaries 풀이 과정각 부서별로 월급 순위 매기기 dense_rank순위가 3 이하인 사람 select윈도우 함수로 순위 추출하는 방법을 알면 간단한 문제입니다.추출할 칼럼과 부서별 월급이 큰 순으로 정렬해 순위를 추출해주는 칼럼을 select 합니다. select d.name as Department, e.name Employee, Salary, dense_rank() over (partition by d.name order by salary desc) as rnfrom employee e join department d on departmentId = d.id RANK vs DENSE_RANKRANK 함수를 사..