게시글
질문&답변
선형회귀분석 질문
안녕하세요! 두 가지 방법 다 결과는 같은데, formula.api의 ols가 훨씬 편합니다. # 이게 더 간단함 (추천)from statsmodels.formula.api import olsmodel = ols('y ~ x1 + x2', data=df).fit() 이렇게 하면 R처럼 공식으로 바로 쓸 수 있어서 코드도 짧고 상수항도 알아서 들어가요. # 이건 좀 번거로움import statsmodels.api as smX = sm.add_constant(df[['x1', 'x2']])model = sm.OLS(df['y'], X).fit() 이 방법은 X, y 따로 분리하고 상수항도 직접 넣어줘야 해서 손이 더 가더라구요.실기 시험에서는 formula 방식으로 푸는게 시간도 절약되고 실수할 일도 적어요.다만 문제에서 “sm.OLS 사용” 이렇게 명시되어 있으면 그때만 두 번째 방식 쓰시면 될 것 같아요!
- 0
- 2
- 7
질문&답변
링크가안보여요 어디에올라와있는거죠대체 ? 구글코랩파일이요
네 ~ 답번드립니다. 영상하단에 보면 수업자료가 있는데 그걸 누르시면 그 영상과 관련된 구글 코렙링크가 보입니다. 혹시 안보이시면 다시 답변주세요. 제가 내일 화면 캡쳐로 알려드릴께요
- 0
- 2
- 16
질문&답변
유형2 질문!!
random_state 는 필수는 아닙니다. 하지만 매번 수행될때 마다 결과가 다르게 나오므로 일관된 결과를 위해서는 써주시는게 좋습니다.
- 0
- 2
- 39
질문&답변
인코딩 질문!!
네 이 에러는 훈련시에는 없었던 새로운 카테고리가 테스트 할때 포함되서 나오는 오류 입니다. 이 에러가 나면 훈련시 컬럼과 테스트 컬럼을 비교해보셔야합니다. 아마도 문자를 숫자로 변환하는 과정에서 훈련과 테스트간에 데이터 불일치가 있어보입니다. 전체 코드가 어떻게 되죠?
- 0
- 1
- 43
질문&답변
작업형 유형 2에서,,, train, test, split 시 성능
네 ~ 답변드립니다. 데이터를 분할 했을때 성능이 낮게 나온 이유는 과적합 때문입니다.2번 방법이 성능이 더 좋은 이유는 훈련할때 다 공부한 데이터로 그대로 시험을 보았기 때문에 더 좋은 결과가 나온거구요. 1번은 공부할때 한번도 보지못한 문제를 봐서 성능이 낮게 나온겁니다
- 0
- 2
- 71
질문&답변
항상 모델학습하실때 train_test_split일부러 안하시는 이유가 있는건가요?
네 맞습니다. 훈련 데이터를 train_test_split 로 훈련과 검증으로 나누고 모델을 학습시켜야 모델의 성능을 미리 확인할 수 있어 말씀 하신대로 오버피팅 여부를 알 수 있습니다. 뒤쪽에 최근 기출문제는 train_test_split 로 나눠서 풀이하였으니 꼭 나눈걸로 연습해가시기 바랍니다. 랜덤 포레스트가 워낙 성능이 좋아서 굳이 안나눠도 합격하는데는 문제가 없어서 제가 뺐었거든요. 그런데 질문 주신게 맞습니다.훈련과 테스트로 분리하지 않은 풀이는 제가 나눈 스크립트를 추가해놓겠습니다. 감사합니다
- 0
- 2
- 72
질문&답변
Label Encoding 관련 질문
네 ~ 답변드립니다. 시험때 나오는 어떤 문자형 변수(범주형 변수)가 데이터의 종류가 많다면 예를 들어 class_type 이라는 변수가 있는데 이게 값의 종류가 a,b,c,d,e,f,g,h, .... (10개이상) 10개 이상이면 label encoder 를 쓰시구요. 범주의 갯수가 적을때 5개 이하면 get_dummies 를 쓰세요.일단 1가지로만 확실히 외워가세요. ^^
- 0
- 3
- 66
질문&답변
help, dir 사용법
네 ~ 제가 help 로 예제 찾아서 ttest_ind 의 예제 찾는것을 찾아보고 영상 업로드 해드리겠습니다.업로드 하고 다시 답변 남기겠습니다.감사합니다.
- 0
- 2
- 48
질문&답변
빅분기 실기 시험 6회 기출 유형, 작업형3
정확한 지적입니다!주어진 문제는 적합도 검정이므로 scipy.stats.chisquare를 사용해야 합니다.chi2_contingency: 독립성 검정용 (두 변수 간의 관계 검정)chisquare: 적합도 검정용 (단일 변수의 관찰값 vs 기댓값)카이제곱 검정에는 빈도가 필요합니다. 그러므로 다음과 같이chi2_contingency → chisquare: 적합도 검정에 맞는 함수를 사용해야합니다.영상은 내일 수정해놓도록 하겠습니다. 감사합니다.수정된 답안은 다음과 같습니다. import numpy as npfrom scipy.stats import chisquare# 관찰된 값 (진통제 데이터)o = [4, 4, 3, 4, 1, 4, 4, 1, 4, 4, 2, 1, 4, 2, 3, 2, 2, 4, 4, 4]# 관찰된 빈도 계산 (1:두통, 2:메스꺼움, 3:어지러움, 4:무증상)observed_freq = [o.count(i) for i in range(1, 5)]# 기대 빈도 계산 (항히스타민제 기준: 10%, 5%, 15%, 70%)expected_freq = [len(o) * p for p in [0.1, 0.05, 0.15, 0.7]]# 카이제곱 적합도 검정, p = chisquare(observedfreq, expected_freq)print(p)
- 1
- 3
- 79
질문&답변
정규화 질문
네, 답변드립니다.첫 번째 방법은 데이터 누수 문제가 있습니다.fit_transform(x_train)과 fit_transform(x_test)를 각각 실행하면 훈련 데이터와 테스트 데이터가 서로 다른 스케일링 기준으로 변환됩니다. 이는 모델 성능을 부정확하게 평가하게 만듭니다.두 번째 방법이 올바른 방법입니다:오직 훈련 데이터로만 스케일링 기준을 학습합니다 (fit)같은 기준으로 훈련 데이터와 테스트 데이터를 모두 변환합니다 (transform)반드시 두 번째 방법을 사용하세요. 훈련 데이터로만 스케일러를 학습하고, 같은 스케일러로 모든 데이터를 변환해야 합니다.
- 0
- 2
- 50