전체 글 76

빅분기 실기 작업형3 정리

1. 가설검정1-1. 단일표본검정한개의 집단이 있고 그 집단의 평균값이 특정값이랑 얼마나 비슷한지를 추정하는것from scipy.stats import ttest_1samp(표본데이터, 특정값, alternative=)alternative 옵션의 안에는 'greater', 'less', 'two-sided'가 들어갈 수 있다. stats에 있는 shapiro() 함수로 정규성을 검사할 수 있다. shapiro(표본데이터) 이 값의 pvalue를 보고 판정, 만약 pvalue가 0.05보다 작다면 정규성을 만족하지 않는 것. 표본집단이 정규성을 만족하지 않는다면 윌콕슨검정을 쓰자.마찬가지 stats에 있고 wilcoxon(표본데이터 - 특정값, alternative=) 넣고 돌리면 된다. 1-2. 대응표본..

기출풀이

다시 풀어볼 문제 목록기출9회 작업형1 모든 문제기출8회 작업형1의 3기출6회 작업형3다시 공부해야할 문제 목록오즈비 관련 문제표 행과 열 바꿔서 푸는 기출9회 작업형1같은 문제들 9회작업형11. df에 총대출액 컬럼을 하나 만든 뒤 신용대출과 담보대출의 합을 넣음2. 지역코드랑 성별으로 groupby하고 총 대출액 컬럼에 sum() 3. 성별 간 총대출액 차이가 가장 큰 지역코드를 찾으려면,지역코드와 성별별로 총대출액의 합계를 계산한 테이블에 unstack() 함수를 일단 씌워야한다.이건 unstack() 함수 씌우기 전, 인덱스가 두개인 모습그리고 언스택 함수를 씌우면 이렇게 성별이 컬럼으로 펼쳐지게 된다. unstack() 함수를 이용해서 현재는 인덱스 자리에 있는 것을 위에 컬럼으로 펼칠 수 있고..

작업형3 추가적으로

로지스틱 회귀, 오즈비from statsmodels.formula.api import logitols와 같은 statsmodels.formula.api에 있다. 기출에서는 로지스틱회귀와 함께 오즈비도 물어봤었는데, 독립변수 여럿에 대해서 y를 예측했다고 하자. 한 독립변수가 y에 미친 영향에 대해서 오즈비를 구하라는 문제가 나오면import numpy as npnp.exp(model.params[''])이렇게 넘파이의 exp를 써주면 오즈비를 구할 수 있다.

작업형2 문풀

컬럼이 너무 많아서 직접 고를 수 없을 경우select_dtypes(include=['', ''])이 함수를 이용해서 인코딩 필요없는 숫자 컬럼들만 가져오거나 아니면 unique값 너무 높은 + 결측치값 너무 많은 컬럼만 drop하고 쓰기 타겟이 너무 치우쳐 있는 경우 (분류ㄴㄴ 회귀에서)(이건 고급 내용...)타겟이 너무 치우쳐있으면 로그변환을 해줘야하는데1. 타겟이 치우쳐있는지 어떻게 알아?왜도(skewness) 를 보면된다. print(y_train['charges'].skew())이렇게 데이터의 왜도를 출력해봤을 때1이상이면 로그변환을 해줘야한다고 생각하면 된다. 2. 로그변환은 언제 어떻게 해?y_train['charges'] = np.log1p(y_train['charges'])넘파이의 log..

작업형 제1유형 헷갈리는 내용 정리

IQR을 활용한 이상치 찾기# pandas 활용Q1 = df[col].quantile(.25)Q3 = df[col].quantile(.75)# numpy 활용Q1 = np.percentile(df[col], 25)Q3 = np.percentile(df[col], 75)Q1 - IQR*1.5 보다 작거나Q3 + IQR*1.5 보다 크면 이상치로 판단(포함x) 올림, 내림, 절사import numpy as np올림: np.ceil()내림: np.floor()버림: np.trunc()groupby와 map, transform# city별 중앙값으로 대체# 인덱스 안맞을 때 transform으로 해결하는 방법medi_seri = df['f1'].groupby(df['city']).transform('median..

빅분기 실기 작업형2 정리

빅데이터분석기사 실기 작업형2 문제는 데이터셋이 csv파일로 주어지고, 데이터 전처리하고, 모델 학습시키고 하이퍼 파라미터 튜닝 등 해서 test데이터에 대해 예측값 생성하고 파일로 저장하는 머신러닝 문제이다. 여기서 전처리를 어떻게 하냐에 따라서, 어떤 모델을 선택하냐에 따라서, 하이퍼파라미터튜닝을 어떻게 하냐에 따라서 예측 성능이 달라지는데 이 예측 성능에 따라 점수를 매긴다고 한다. 졸업작품.. 넥스원 산학협력 과제... 이런거 할 때 항상 파이썬으로 했어서 모델학습 코드가 익숙하긴 하지만 이제 모든 라이브러리랑 함수를 다 외워서 써야해!먼저 대략적으로 순서를 읊어보자면,EDA (탐색적데이터분석)데이터전처리, 피처엔지니어링결측치, 이상치 처리인코딩스케일링 검증데이터 분리모델학습모델평가가장 좋은 결과..

[알고리즘 고득점 kit/스택, 큐] 주식가격

def solution(prices): answer = [] n = len(prices) for i in range(n): j = i while j 입출력 예시에서 3초 지점 같은 경우, 3초 지점의 3은 바로 뒤에 2가 됐음에도 불구하고 1초간 가격이 떨어지지 않은걸로 본다. 따라서 배열크기만 안넘으면 무조건 j+=1해주고 다시 반복 돌릴지 break로 탈출할지 결정하면 된다.시간 제한이 없었기에 위와 같은 이중 포문 시간복잡도 O(N제곱)의 ㅆㄹㄱ 코드로도 통과는 했지만, 만약 시간제한이 있었다 생각하고 풀어보자.from collections import dequedef solution(prices): answer = [0 for i in ra..

[알고리즘 고득점 kit/스택, 큐] 다리를 지나는 트럭

from collections import dequedef solution(bridge_length, weight, truck_weights): answer = 0 dq = deque(0 for i in range(bridge_length)) truck = deque(truck_weights) sum = 0 t = 0 result = [] while result != truck_weights: n = dq.popleft() sum -= n result.append(n) if sum + truck[0] 맨 앞에서 pop을 하고 그 값을 result에 넣어준 뒤, 맨 뒤에서 대기하고 있는 버스들을 넣어주는 ..

[알고리즘 고득점 kit/스택, 큐] 프로세스

from collections import dequedef solution(priorities, location): answer = 0 q = deque(priorities) num = deque() for i in range(len(q)): num.append(i) pr = 0 while q: i = 1 size = len(q) while i 첫번째 원소보다 우선순위가 높은게 있을 때와 없을 때로 나눠서 첫번째 원소보다 우선순위 높은게 뒷쪽에 있을 때는그 우선순위가 더 높은녀석이 제일 첫번째로 오도록 반복문 돌려서 앞에서 빼고 뒤로 넣어줬고 첫번째 원소의 우선순위가 가장 높을 때는그 첫번째 원소가 찾던 녀석이 맞는..

[알고리즘 고득점 kit/스택, 큐] 올바른 괄호

이건 백준에서 풀었던 문제!누가봐도 스택을 사용하는 문제다. 아까 풀었던 문제처럼 또 deque를 이용해서 풀어보자.from collections import dequestack = deque()def solution(s): ln = len(s) for i in range(ln): if s[i] == '(': stack.append(1) else: if stack: stack.pop() elif i ==0: return False if stack: return False return True( 가 나타나면 스택에 값을 넣어주고 )가 나..