문제1-2. gender를 종속변수로 하고 나머지 변수들(age, length, diameter, height, weight)을 독립변수로 사용하는 로지스틱 회귀 모델을 적합시킨 후, 잔차 이탈도(Residual Deviance)를 계산하시오. (반올림하여 소수 둘째자리까지 계산) 인강에서는 glm으로 풀고 문제집에서는 logit으로 푸는데 그냥 glm 말고 logit으로 풀면 안되나요? 그리고 import statsmodels.api as sm 을 꼭 넣어야 하나요? 넣지 않아도 답이 나오더라구요.
강사님 안녕하세요 데이터셋을 다루는 중에 이상치가 보여서 train 데이터는 전처리했는데, 혹시 test 데이터도 이상치가 있더라도 따로 처리하지 않고 그대로 두는 게 더 나은 걸까요? 그리고 현재 데이터셋으로 모델 평가했을 때 RMSE가 778 정도 나오는데, 이 정도면 성능이 괜찮은 걸까요? train.loc[1659,'총구매액'] = 0 train.loc[3174,'총구매액'] = 0 train.loc[3488,'총구매액']= 0 train.loc[1659,'최대구매액'] = 0 # print(train[(train['총구매액']<0) | (train['최대구매액']<0)]) print(test[test['최대구매액']<0]) #2 test.loc[579,'최대구매액'] = 0 test.loc[1177,'최대구매액'] = 0 print(test[test['최대구매액']<0]) 감사합니다
# 출력을 원하실 경우 print() 함수 활용 # 예시) print(df.head()) # getcwd(), chdir() 등 작업 폴더 설정 불필요 # 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가 import pandas as pd train = pd.read _csv("data/customer_train.csv") test = pd.read _csv("data/customer_test.csv") #총 구매금액 , rmse target = train.pop("총구매액") #수치형 변수 스케일링 cols = train.select _dtypes(exclude = 'object').columns from sklearn.preprocessing import MinMaxScaler mx = MinMaxScaler() train[cols] = mx.fit _transform(train[cols]) test[cols] = mx.transform(test[cols]) ob = train.select _dtypes(include = 'object').columns from sklearn.preprocessing import LabelEncoder for col in ob: le = LabelEncoder() train[col] = le.fit _transform(train[col]) test[col] = le.transform(test[col]) #데이터 나누기 from sklearn.model_selection import train_test_split x_tr , x_val , y_tr, y_val = train_test_split(train, target, test_size = 0.2, random_state = 0) import lightgbm as lg model = lg.LGBMRegressor(random_state = 0) model.fit (x_tr,y_tr) pred = model.predict(x_val) from sklearn.metrics import root_mean_squared_error r = root_mean_squared_error(y_val,pred) pred = model.predict(test) s = pd.DataFrame({"pred" : pred}) s.to _csv("result.csv", index= False) df = pd.read _csv("result.csv") #758.1836860967057 800정도가 나온다고 하던데 758이 나온거면 모델 성능이 더 좋다고 하는건데 이게 이상일수도 있을까요? 750점 대가 나오니까 불안하네요 ,, 추가로 이렇게 pd.read_csv로 확인했을때 제대로 나오면 그냥 제출하면 되는거죠??
ols를 이용해서 종속변수를 예측할때는 바로 model.predict(train) 이런식으로 바로 진행했잖아요, 근데 여기서 test데이터에서 종속변수로 주어진 값을 pop하고, model.predict(test) > 0.5 이런식으로 진행하는 이유가 궁금합니다.. 복습을하다보니 헷갈려서요.. ols와 logit의 특성 차이일까요?
밑에 원핫인코더에 관해 질문을 드렸는데요. object형식 컬럼을 지정한 cols 리스트로 지정하여 인코딩을 진행하면 수치형 데이터를 버리게 되어서 위험하다고 하셨는데요. 그럼 label인코더로 사용하게 되면 이부분도 수치형 데이터를 버리게 되는거 아닌가요? for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) 그럼 label인코더를 선택할 시에는 수치형데이터에 별도로 스케일링 작업을 해줘야되는건지... 헷갈리네요^^;;
선생님! 안녕하세요. 항상 잘 듣고 있습니다! 다름이 아니고, 6분 대부터 나오는 케이스 6, 7에 대해 오류가 있는 거 같아 질문 드립니다. 강의 자료는 class Parent { ~라고 잘 되어있는데 다운 받는 자료에는 class Person [ ~ 이라고 되어있어 Parent 클래스가 없는 거 같습니다. 별개로 이런 상황에서는 person을 parent로 고치던지 class Child extends Person이라고 고치면 될까요?? --- 하나 더 질문을 드리자면 11:12 즈음에 '3. 생성자와 멤버변수를 부를 때 같은 키워드를 쓰니 주의' 라는 부분은 this = 자기자신 객체 super = 부모 객체 . = 멤버의 변수나 메서드 접근 () = 생성자나 메서드 호출 이렇게 생각하면 될까요?? 항상 감사합니다!
안녕하세요. 두가지 궁금한 점이 있습니다. 데이터 전처리 단계에서 ID나 nunique 함수로 조회시 너무 많은 갯수를 가지거나 예측값과 별 상관 없어보이는 컬럼은 처음부터 drop시키고 진행해도 무방한건가요?? 처음 baseline으로 object형식 컬럼만 단순 제거, 원핫인코더, label인코더 3가지로 진행하여 가장 평가지표가 좋은 전처리를 체택하여서 제출을 하는데요. 원핫인코더 시에 train = pd.get_dummies(train) test = pd.get_dummies(test) train.head(2) 이렇게 작성하는 것과 train = pd.get_dummies(train[cols]) test = pd.get_dummies(test[cols]) train.head(2) object 형식의 컬럼을 담은 리스트인 cols를 지정하는게 나은건지 잘모르겠습니다. ^^ 두가지 답변 부탁드립니다 ^^
강의를 보다 머신러닝까지 해서 제출하면 그 결과를 바탕으로 평가지표에 의해서 평가가 되는건지 아니면 제시된 평가지표를 제출전에 꼭 사용해야하는지가 헷갈립니다! 강의에서 볼때는 평가지표를 사용해서 출력해보고 더 나은 모델을 사용하는 정도 인거 같아 보였는데요! 지금 시간이 없어서 랜덤포레스트 모델만 사용하고 외우려고 하는데도 평가지표 코드를 사용해야 할까요?!
BaseOperator 생성이 문제일까요? Invalid URL Error 가 나네요. *** Could not read served logs: Invalid URL 'http://:8793/log/dag_id=dags_seoul_api_corona/run_id=manual__2025-06-13T01:23:17.406645+00:00/task_id=tb_corona19_count_status/attempt=1.log': No host supplied
데이터 전처리 부분에서 원핫 인코딩을 진행하는데, 저는 object형 컬럼들을 따로 설정해서 원핫인코딩을 진행하였습니다. 하지만 강의에서는 따로 이런 것 없이 바로 원핫을 진행하였습니다. 그런데 f1_score가 약 30%정도 점수가 차이나서 혹시 컬럼을 안지정하고 원핫을 하는게 맞는지 헷갈리네요! 항상 [작업형2]전처리 부분을 어떻게 해야할지 잘 모르겠습니다..