10회 기출 작업형1 1. 문제 1에서 df=df.groupby('sub_topic')['is_correct'].mean() df.sort_values('is_correct', ascending=False).drop_duplicates() 이렇게 했는데 오류가 나타나던데,, 이렇게 하면 안되는건가요? 해설에는 result = acc.sort_values(ascending=False).drop_duplicates() sort_values('컬럼명', ~~)이라고 보아서,, 해설처럼 ('컬럼명')을 안해도되나요? 2. 문제2-2에서 cond=df['year-month']=='2024-10' targetdata=df[cond] df.groupby('category')['price'].sum() 이렇게 해도 괜찮을까요? targetdata.groupby~ df.groupby 차이점을 정확하게 잘 르겠습니다ㅠ df를 일단 계속 쓰다보니까 헷갈려서요ㅠ 변수명 설정? 하는게 좀 헷갈리는 것 같습니다ㅠ groupby나 cond하고 나서 새로운 변수?로 설정하는것인가요? 뭔가 df=df~~랑 헷갈리는 것 같습니다ㅠ 좋은강의 감사드립니다!
데이터 전처리 과정에서 train= train.drop('customerID', axis=1) test = test.drop('customerID', axis=1) target=train.pop('TotalCharges') train = pd.get_dummies(train) test = pd.get_dummies(test) 이렇게 customerID를 drop하는 처리 진행 후 인코딩을 해서 학습 평가 까지는 잘 진행이 되는데, 예측단계(pred=rf.predict(test))에서 아래와같은value에러가 뜹니다. ValueError: The feature names should match those that were passed during fit. Feature names unseen at fit time: - customerID_CUST0001 이런 경우는 무조건 train과 test를 하나로 묶어서 원핫인코딩을 진행해야하나요? train, test 각각 개별로 진행하면 안되는 떄의 기준이 궁금합니다.
1. df.groupby(['지역코드','성별'])['총대출액'].sum() 그룹화할떄 지역코드, 성별 둘다 할때 보통 groupby('컬럼명') 인데 이때는 ( ) 안에 [ ] 이걸 해야하는건가요? 두개이상으로 그룹화할때 (['지역코드'], ['성별'] ) 이 아니라 (['지역코드', '성별'])인 이유가 있을까요 2. 1) "발생건수"와 "검거건수"를 따로 분리 cond1 = df['구분'] == "발생건수" cond2 = df['구분'] == "검거건수" df1 = df[cond1].iloc[:, 2:] df2 = df[cond2].iloc[:, 2:] 검거율을 바로 계산하지 않고, 따로 분리하는 이유가? 이해가 잘 안갑니다 3. df.groupby(['부서', '성과등급'])['근속연수'].mean() 이것과 df.groupby(['부서', '성과등급'])['근속연수'].transform("mean")이것은 다른가요? transform("mean")으로 써야하는건가요? df.groupby('기준컬럼')['값컬럼'].mean()이랑 df.groupby('기준컬럼')['값컬럼'].transform('mean')이랑 차이점을 잘 모르겠습니다 그럼 그룹별로 합계? 이런거 할떄도 df.groupby('기준컬럼')['값컬럼'].transform('sum') 이렇게 해야하나요? 뒤에 transform('')괄호 부분에 max,min 등등을 넣는건가요? 4. 각 직원의 '연봉 / 근속연수' 값을 계산하여, 그 값이 세 번째로 큰 직원의 근속연수 구할때 sort_values로 데이터 본 다음에 눈으로 본 값으로 알아서 1을 (loc 이런걸로 구하지 않고) a=1 이렇게 코딩해도 괜찮나요? 감사합니다
2회차 모의고사의 인강에서는 labelencoding을 사용후에 여러개의 모델을 사용하였는데, 꿀팁? 인강에서는 LGBM을 사용하면 obj 타입을 category로 변경만 해주면 된다고 하셨습니다. 어떤 방식이 더 낫고 맞는걸까요? 현재 상황은 라벨인코딩 사용 가능하며, 시험 때 랜덤포레스트와 LGBM을 사용하려 계획중입니다.
1. 유의하지 않은 독립변수 개수 구할때 summary보고 바로 8이라고 적어도되나요? print(sum(model.pvalues[1:] >0.05)) 이 코딩도 해야하는지 궁금합니다 2. 2-1, 2-2(결정계수) 구하는것도 그냥 summary 보고 바로 적어도되나요? 3. 반올림이나 정수 구하는것도 그냥 기본 수치 보고 코딩 안하고 바로 적어도되는지 궁금합니다. 점수엔 영향을 미치지 않나요? 감사합니다
1. import pandas as pd df = pd.read _csv 이거 적는것은 (데이터 불러오는 것은) 시험에서 제공하고 있다고 했는데 (그럼 시험장에선 따로 안 적어도 되는것이죠?) 이 사이에 from sk.learn.preprocessing import MinMaxScaler 이건 매번 직접 적는건가요 2. train = train.drop('customerID', axis=1) test = test.drop(['customerID'], axis=1) target = train.pop('TotalCharges') ID를 drop안하고 그냥 타겟=만해도 되나요? 보통 그냥 tartget=~만 하는 것 같아서요 단순한(?) 질문만 하는것 같네요ㅠ 일단 쭉 빨리 들으면서,, 다시 복습하고자 합니다(조금씩 뭔가 알거는 같은데, 시간이 촉박하다 보니 빈틈이 생기는 것 같지만.ㅠ) 끝까지 열심히 하겠습니다 항상 좋은 강의 감사드립니다
안녕하세요. 언제나 수고가 많으십니다 :) ols나 logit 모델을 만들 때, 문제에서 ' 해당 변수가 범주형이라고 명시되어 있는 경우 '에만 변수에 C()를 감싸주라고 하셨는데요! 제가 궁금한 부분은 ' <<명시>> 가 정확히 무엇인지' 입니다. 예를 들어 시험 환경의 문제를 보면 아래와 같이 표현되어 있는데요. Pclass: 좌석 클래스 (1: 1등석, 2: 2등석, 3: 3등석) 위의 표현은 Pclass가 범주형이라고 명시되어 있는 것이라고 이해하고, Pclass 사용 시 C()로 감싸주면 될까요? 아니면 말그대로 문자로 "이 변수는 숫자이지만 범주형입니다."라고 적힌 것만 명시로 받아들어야 하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 앞서 ols을 만들때 data=train 즉 트래인에 있는 데이터로 학습을 한건데 테스트를 예측할때 data=test가 아닌 원래 train데이터로 학습된 모델을 그대로 사용하는이유가 뭘까요? 문제에서 1-2에서 적합한 회귀모형을 이용하라는 단서때문인가요? 아니면 원래 train 데이터로 학습된 모델을 사용해야해서 그런간가요
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 분류 문제일때 타켓값을 인코딩 안해도 되는 건 항상 그런 건가요? 범주형 칼럼 인코딩은 필수인데 범주형 타겟값 인코딩은 왜 안하는지 궁금합니다..!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 처음에 문제를 풀 때는 원핫 인코딩 방식을 쭉 쓰는 것을 선호했기 때문에 결측치가 존재하는 행만 제외하는 방식(train.dropna(axis=0) 함수 이용)으로 train과 test의 결측치 처리를 하고, 사진에 보이는 코드를 이용해서 원핫 인코딩을 진행하였습니다. 하지만 이렇게 인코딩을 하니 이후 train_test_split을 진행하고, 랜덤포레스트로 학습을 진행하려고 하니 런타임이 1분 이상으로 지나치게 오래걸리는 문제가 나타났습니다. 문제를 해결하지 못해 강의에서 설명한 방식대로 train.nunique의 수와 결측값이 많은 컬럼들을 drop하고 labelencording을 하는 방식으로 수정하여 끝까지 풀 수는 있었습니다. 시험에서 겪었다면 너무 당황했을 것 같은데 연습때 겪어서 천만다행이라 생각합니다. 혹시 이런 경우처럼 nunique의 개수가 많거나 데이터 자체의 shape가 거대할 경우는 원핫보다는 label 인코딩을 진행하는 것이 더 원할하게 진행하는 것이 옳은 방식인가요? 아니면 사진에 나온 인코딩 방식에 에러가 있었는지 질문드리고자 합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 google colab으로 LabelEncoder를 타이핑 하면 Lab.. 쯤에서 자동 완성하기가 뜨는데 시험에서는 자동완성 없이 대문자와 풀 스펠링을 정확하게 외워가야 하는 것이죠? LabelEncoder
안녕하세요 강사님, 강의 잘 수강하고 있습니다. Airflow 패키지 설치 이후 DAG 만들기 실습을 진행하려고 하는데 VSCode 환경에서 코드 입력 시 패키지를 로드하는 다음 코드에서 오류가 출력됩니다: Import "airflow.providers.standard.operators.bash" could not be resolvedPylance reportMissingImports cmd 터미널에서 (venv) 확인하고 airflow 설치 진행했는데, airflow, pendulum 등 관련 패키지를 인식하지 못하고 있는 것 같습니다. 오류 해결 위해 추가로 어떤 부분 확인해볼 수 있을지 도움 주시면 감사드리겠습니다. 그리고 VSCode 시작해서 처음 오픈되는 powershell 터미널에서 붉은 글씨로 보안 오류 (UnauthorizedAccess)가 출력되는데 이 오류는 대처할 필요는 없을까요? 확인 부탁드립니다. 감사합니다!
# 방법1 from statsmodels.formula.api import logit # 1) 로지스틱 회귀 모델 생성 및 학습 model = logit("gender ~ age + length + diameter + height + weight", data=train).fit() print(model.summary()) # 2) 잔차 이탈도 계산 print(round(-2 * model.llf,2)) # 방법2 from statsmodels.formula.api import glm import statsmodels.api as sm # 1) glm 모델 적합 (로지스틱 회귀를 위해 이항 분포 사용) formula = "gender ~ age + length + diameter + height + weight" model = glm(formula, data=train, family=sm.families.Binomial()).fit() # 2) 잔차이탈도 계산 print(model.summary()) print(round(model.deviance,2)) 중에서 방법1을 써도 괜찮나요? 차이점이 궁금합니다 방법1 에서 -2 * model.llf,2 이건 무슨 뜻이죠? llf가 어떤 것인가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 sklearn 에서 rmse 도 제공하는걸로 보이는데, 계속 없다고 말씀하시는게 생기기 전에 촬영하셔서 그런걸까요???
print(pd.read_csv('result.csv')) pred 0 Low 1 High 2 High 3 Low 4 Low .. ... 226 Very Low 227 Medium 228 Very Low 229 Low 230 Very High [231 rows x 1 columns] # test 예측 pred = rf.predict(test) submit = pd.DataFrame({ 'pred':pred }) submit.to_csv('result.csv', index=False) 아래 index=False 하고 제출 후 해당 파일 확인하니까 인덱스가 보이는데요. 이건 그냥 상관없는건가요? 제출 자체는 인덱스없이 된건데 제가 프린트 할때 index=False 를 안해서 그냥 뜨는건가요..?