목록파이썬 (44)
오랑우탄의 반란
오늘도 오랑이는 문제를 풉니다. 둘만의 암호 풀이 과정alphabet 문자열 생성 후 skip에 포함된 문자 제거s 의 문자에 대해 인덱스 + index 에 해당되는 문자 alphabet에서 꺼내서 출력 우선 s 인덱스 카운트가 원활하게 되도록 alphabet 문자열 생성 후 skip 에 포함된 문자를 제거해주는 작업을 해줍니다.def solution(s, skip, index): answer = '' alphabet = 'abcdefghijklmnopqrstuvwxyz' alphabet = ''.join(sorted(set(alphabet) - set(skip))) skip 이 제거된 알파벳을 출력해보면 아래와 같이 나옵니다. 이제 s 인덱스+index 에 맞는 알파벳을 출력해주는..
오늘도 오랑이는 문제를 풉니다. 대충 만든 자판 풀이 과정keymap 글자들의 최소 인덱스+1 목록targets 단어의 각 글자에 대해 위 목록에 있는지 확인있으면 인덱스+1 answer에 append없으면 -1우선 keymap의 인덱스 목록을 저장해줄 딕셔너리를 만듭니다. def solution(keymap, targets): answer = [] key_dict = {} #key_dict에 각 글자별 최소 인덱스값 저장 for i in keymap: for idx, char in enumerate(i): #keymap 단어에서 각 글자의 인덱스와 글자 짝에 대해 if char not in key_dict: key_..
오늘도 오랑이는 문제를 풉니다. 문자열 나누기 풀이 과정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 ..
머신러닝 로지스틱회귀분석 실습앞서 배원 로지스틱 회귀를 사용한 분석 분류를 직접 파이썬에서 데이터셋으로 실습해보겠습니다. 캐글 타이타닉 예측 대회의 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 라이브러..