문제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의 특성 차이일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 계속 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라고 뜹니다.
밑에 원핫인코더에 관해 질문을 드렸는데요. object형식 컬럼을 지정한 cols 리스트로 지정하여 인코딩을 진행하면 수치형 데이터를 버리게 되어서 위험하다고 하셨는데요. 그럼 label인코더로 사용하게 되면 이부분도 수치형 데이터를 버리게 되는거 아닌가요? for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) 그럼 label인코더를 선택할 시에는 수치형데이터에 별도로 스케일링 작업을 해줘야되는건지... 헷갈리네요^^;;
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 중복 회원 예외()에서 오류가 자꾸 발생합니다. @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); //Then assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended java.lang.IllegalStateException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:39) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:38) at hello.hello_spring.service.MemberService.join(MemberService.java:31) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support .AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728) at hello.hello_spring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at hello.hello_spring.service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:45) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
선생님! 안녕하세요. 항상 잘 듣고 있습니다! 다름이 아니고, 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
이번 강의에서 @ServletComponentScan 에 대한 설명을 들으면서 궁금한 점이 생겼는데요, 서블릿 생성과 등록 차이에 대한 질문좀 드리겠습니다. ServletApplication 이 실행되고 @ServletComponentScan 이 붙어있으면 현재 내 패키지를 포함해서 하위 패키지를 뒤져서 서블릿을 모두 찾아 자동으로 서블릿을 등록해준다고 하셨습니다. 아마 서블릿 컨테이너에 등록하는 것이겠지요? (틀렸다면 말씀해주세요) 그런데 여기서 이 등록이라는 것이 서블릿 객체로 생성해서 등록하는 것인지 아니면 객체가 아닌 단순히 스프링 빈처럼 빈이름이라던가 해당 서블릿을 타입이라던가 그런것을 식별 정보만을 사용해서 등록한다는 것인지 궁금합니다. 왜 이 부분을 질문 드리냐면 이전 강의에서 서블릿 컨테이너의 역할중에 서블릿 객체를 생성하는 역할이 있다고 강의 하셨는데요. 서블릿이 자동 등록될 때 만약에 객체를 생성해서 객체가 등록된다면 @ServletComponentScan 은 단순히 스캔 및 서블릿으로 등록 판별만하고 서블릿 객체를 생성하는건 서블릿 컨테이너의 역할이 될 것 같은데 만약에 객체를 생성해서 등록하는게 아닌 스프링 빈처럼 @ServletComponentScan 이 이름, 타입같은 정보로만 등록하는 것이라면 서블릿 컨테이너의 서블릿 객체 생성 역할은 언제 일어나고 언제 사용되는건지 잘 모르겠습니다. @WebServlet에서 알맞은 url 매핑 요청이 들어왔을 때 그제서야 서블릿 컨테이너에 있는 정보를 바탕으로 서블릿 객체를 생성하고 request와 response를 받는 식인가요? 결국 제가 궁금한건 @ServletComponentScan 에서 말하는 자동 등록이 스프링 컨테이너가 하는 객체 생성까지 포함인지, 아니면 별도의 정보로 등록하고 컨테이너가 하는 객체 생성도 별개의 것인지 궁금합니다. 감사합니다!