목록PYTHON (56)
오랑우탄의 반란

오늘도 오랑이는 문제를 풉니다. 문자열 나누기 풀이 과정s의 각 글자 i iterate 해서 첫 문자 x와 같은지 비교같으면 same +=1다르면 diff +=1same = diff 이면 answer += 1, same&diff 값 초기화, x=i우선 answer, same, diff 를 모두 0으로 설정해두고 시작합니다.처음에는 answer 와 same 을 1로 두고 시작했었는데, 이럴 경우 첫 번째 x에 대해 중복으로 same이 카운트되기 때문에 틀립니다. 또한 반복문 내에서 처음에는 same==diff 조건을 i==x 이후에 뒀는데 이렇게 되면 초기화가 제대로 이루어지지 않기 때문에 순서를 아래와 같이 해야 합니다. for i in s: if same == diff: answer ..

지금까지 배웠던 이론을 바탕으로 실제 데이터분석의 전 과정 실습을 해보겠습니다. 데이터분석 예측모델링 w. 타이타닉 데이터지난 모델링 실습에서 활용했던 타이타닉 데이터로 분석을 진행하겠습니다. Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com 칼럼별 데이터를 체크해둡니다. ColumnDetailsDatatypePassengerId 승객 ID (PK)int64Survived (Y)사망 (0) 생존 (1) int64Pclass 티켓 등급 (1,2,3)int64 (범주형)Name 이름objectSex 성별 object (범주형)Age 나이float64 SibSp 형제와 배우자 수int64 Parch 부모와 자식 수int64 Ticket ..

머신러닝 로지스틱회귀분석 실습앞서 배원 로지스틱 회귀를 사용한 분석 분류를 직접 파이썬에서 데이터셋으로 실습해보겠습니다. 캐글 타이타닉 예측 대회의 Titanic - Machine Learning from Disaster 데이터를 사용하겠습니다. Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com 대회 주제는 탑승한 승객의 정보를 바탕으로 생존 유무를 예측하는 분류 문제였는데요종속변수 Y를 사망(0) / 생존(1)으로 두고 독립변수 X를 티켓등급, 성별, 요금 등으로 넣어보며 확인해보는 분류 분석을 아래의 단계에 따라 진행하겠습니다. (데이터 전처리 단계는 생략하고 바로 회귀분석만 진행한다는 점 참고) 데이터 확인변수 설정 및 로지스틱..

오늘도 오랑이는 문제를 풉니다. 체육복 풀이 과정 여분 체육복 학생이 도난 당하면 빌려줄 수 없음 → 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] 그러면 이 선을 어떻게 그리는 게 좋을까요? 바로 각각의 값에 대해 선과의 오차를 계산해서 최소의 오..