작업형 2 - 데이터 전처리에서 공식같은 게 있을까요??
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 - 데이터 전처리에서 공식같은 게 있을까요?? 이 의미는 데이터 타입이 object, int/float 섞여있을 때 수치형만 모아서 분석을 한다거나 수치형+범주형 같이 모아서 분석을 한다거나 위 두 개의 경우 점수 배점 차이가 없을지 궁금합니다.
- python
- 머신러닝
- 빅데이터
- pandas
- 빅데이터분석기사
172만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 - 데이터 전처리에서 공식같은 게 있을까요?? 이 의미는 데이터 타입이 object, int/float 섞여있을 때 수치형만 모아서 분석을 한다거나 수치형+범주형 같이 모아서 분석을 한다거나 위 두 개의 경우 점수 배점 차이가 없을지 궁금합니다.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
케글에서 다운받았는데 X_train.csv y_train.csv X_test.csv 는 없고 Train.csv 파일 하나 있네요. 어떻게 된걸까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 선생님 저는 작업형 2를 아래와 같은 매커니즘으로 푸려고 합니다. train.info()를 통해서 object 컬럼 확인 → 만약 범주형 데이터가 있다면? → 라벨인코딩 (여기서 cols = train.select_dtypes(include='object').columns 로 해서 푸려고 합니다.) → target = train.pop('타겟컬럼') train = train.drop('ID',axis=1) test_ID = test.pop('ID') → train_test_split을 통해 검증데이터 분리 train_test_split(train, target, test_size=0, random_state=0) <여기서 train과 target으로만 쓰기 위해서 위에서 pop과 drop을 진행했습니다.> → 모델 예측 및 검증 무조건 랜덤포레스트로 진행하고 그 후에 하이퍼파라메터 튜닝으로 성능 비교해볼 생각입니다. → 평가지표에 따른 성능 비교 → 하이퍼파라메터 튜닝 적용해보기 → DataFrame 만들기 → csv만들기 매커니즘에 따른 코드는 다음과 같습니다. train.info () from sklearn.preprocessing import LabelEncoder cols = train.select_dtypes(include='object').columns for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) target = train.pop('타겟컬럼') train = train.drop('ID',axis=1) test_ID = test.pop('ID') from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0, random_state=0) from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=0, max_depth = 5, n_estimators = 500) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) from sklearn.metrics import f1_score print(f1_score(y_val, pred, average='macro')) pred = rf.predict(test) submit = pd.DataFrame({ 'ID' : test_ID, '타겟컬럼' : pred }) submit.to_csv('0000.csv', index=False) 여기서 질문은 1. pop과 drop을 저 단계에서 해줘도 무방한가요? cols를 라벨 인코딩에서 먼저 정의해주게 되는데 그 이후에 pop과 drop써도 무방한지 여쭤봅니다. 2. 물론 어떤 데이터를 주냐에 따라 다르겠지만 위와 같은 과정으로 진행해도 점수획득에 큰 무리 없겠죠? (교차검증등등은 진행하고 싶지 않아서요) 3. 범주형 데이터가 하나도 없다면? 그럴일이 없을거 같긴한대 그러면 인코딩단계만 빼고 그대로 진행하면되나용?
미해결
스프링 시큐리티 OAuth2
섹션 7 OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개(2) 진행시 설정시 에러가 납니다 uli 클릭하면 realm : "oauth2", public_key : "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqFd5+xNaJoQzccdweHH4hxMOOirdHcbGx7tAkl7YWFAD0kBpVmpFN3sWaz3T3CLa0zSULmEWuepEkf/T376JKs+opBRb8pfnDSvvq1va4UXhw5j1mMgN8a6kME2TfM4cd2XnnT9huTIJ2+4nTYPTwKhYd+KvgB1ruzUe4ApMw0injfbsyufS17bhGtHYn4Ysq7THWsOAPVQ+FMYd8e1T4tfY1jkQg68UYB43dHST34y0JWkStPowP80qLMbsPvJ4JrOCzSGk08sBvmd6Fo1KD9RAqZyGvQFXEyo1Y5jVcKGCgwin0ijQBCKhRpHmWGlmyamrW6fsgAnAJH+clUdAwQIDAQAB", token-service : " http://localhost:8080/realms/oauth2/protocol/openid-connect ", account-service : " http://localhost:8080/realms/oauth2/account ", tokens-not-before : 0 } 이렇게 잘나옵니다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' spring: application: name: inf_oauth2 security: oauth2: client: registration: keycloak: authorization-grant-type: authorization_code client-id: oauth2-client-app client-name: oauth2-client-app client-secret: 90GVrQtfYCp1u9cc0VAJNFiY8ZzCyjHD redirect-uri: http://localhost:8081/login/oauth2/code/keycloak client-authentication-method: client_secret_basic scope: openid, profile, email provider: keycloak: issuer-uri: http://localhost:8080/realms/oauth2 authorization-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/auth jwk-set-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/certs token-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/token user-info-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo user-name-attribute: preferred_username org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexContoller': Unsatisfied dependency expressed through field 'clientRegistrationRepository': Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:787) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.6.jar:6.1.6] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at java.base/java.util.HashMap.forEach(HashMap.java:1421) ~[na:na] at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.asClientRegistrations(OAuth2ClientPropertiesMapper.java:64) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientRegistrationRepositoryConfiguration.clientRegistrationRepository(OAuth2ClientRegistrationRepositoryConfiguration.java:49) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) ~[spring-beans-6.1.6.jar:6.1.6] ... 34 common frames omitted
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코딩과 drop_first=true 를 통해 다중공선성을 줄이고 유형A가 제거된 상태인데 독립변수에 유형A를 포함하고싶으면 어떻게 해야하나요?
미해결
빅데이터 분석기사 시험 실기(Python)
RandomForestClassifier만 적용하여 앙상블 학습하였을때 ROC_AUC_SCORE가 1.0이 나오는데,, 연습문제 동영상과 같이 0.84.... 가 나오지 않고 1.0이 나오는 이유가 뭘까요 혹시 과적합이라면 오답이라고 할 수 있을까요? 전체 소스 공유합니다. import seaborn as sns import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn.ensemble import RandomForestClassifier df = sns.load_dataset('titanic') # 결측치 제거 df['age'] = df['age'].fillna(df.age.mean()) df['deck'] = df.deck.fillna(method='bfill') df['deck'] = df.deck.fillna(method='ffill') df['embarked'] = df.embarked.fillna('S') df['embark_town'] = df.embark_town.fillna('Southampton') df.isna().sum() from sklearn.preprocessing import LabelEncoder obj = ['sex', 'embarked', 'class', 'who', 'adult_male', 'deck', 'embark_town', 'alone'] encoder = LabelEncoder() for i in obj: df[i] = encoder.fit_transform(df[i]) category = ['pclass', 'sex', 'class', 'who', 'adult_male', 'alone'] for i in category: df[i] = df[i].astype('category') df = pd.get_dummies(df) scaler = MinMaxScaler() lst = ['age', 'fare'] scaler.fit(df[lst]) df[lst] = scaler.fit_transform(df[lst]) y = df['survived'] X_train, X_test, y_train, y_test = train_test_split(df, y, test_size=0.3, stratify=y, random_state=23) ml = RandomForestClassifier() ml.fit(X_train, y_train) pred = pd.DataFrame(ml.predict_proba(X_test)) from sklearn.metrics import accuracy_score, roc_auc_score print(roc_auc_score(y_test, pred.iloc[:, 1]))
해결됨
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문 내용] 우선 단방향 연관관계를 적용하고 꼭 필요한 경우에 양방향 연관관계를 사용하라는 내용을 적용해보다가 이해가 안되는 부분이 생겨서 질문남깁니다. Team과 Member로 양방향 연관관계를 적용한다고 생각해보면 다른 질문의 답변을 봤을 때 Team을 조회할 때 Member가 거의 같이 조회가 되는 경우와 fetch join으로 조회 시 양방향 연관관계를 사용하여 더 편리하게 조회할 때 사용한다는 답변을 봤습니다. (제대로 이해한 것인지는 모르겠습니다.) 그래서 테스트를 해봤습니다. @Test void 멤버목록과_함께_팀조회() { Team team = new Team("teamA"); entityManager.persist(team); Member member = new Member("m1", 0, team); Member member2 = new Member("m2", 0, team); entityManager.persist(member); entityManager.persist(member2); entityManager.flush(); entityManager.clear(); System.out.println("====테스트 1 양방향 연관관계==="); Team findTeam = teamJpaRepository.findById(team.getId()).get(); List<Member> members = findTeam.getMembers(); for (Member member1 : members) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 2 fetch join 양방향 연관관계 사용=="); Team findTeam2 = teamRepository.findTeamWithMembersById(team.getId()).get(); List<Member> members2 = findTeam2.getMembers(); for (Member member1 : members2) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 3 fetch join 그냥 엔티티 사용=="); Team findTeam3 = teamRepository.findTeamWithMemberById(team.getId()).get(); List<Member> members3 = findTeam3.getMembers(); for (Member member1 : members3) { System.out.println("member1 = " + member1.getUsername()); } } public interface TeamRepository extends JpaRepository<Team, Long> { @Query("select t from Team t join fetch t.members") Optional<Team> findTeamWithMembersById(Long id); @Query("select t from Team t join fetch Member m") Optional<Team> findTeamWithMemberById(Long id); } 테스트 1의 경우 두개의 쿼리가 나가는 것을 확인했습니다. select t1_ 0.team _id, t1_0.create_by, t1_0.created_date, t1_0.last_modified_by, t1_0.last_modified_date, t1_ 0.name from team t1_0 where t1_ 0.team _id=? select m1_ 0.team _id, m1_0.member_id, m1_0.age, m1_0.create_by, m1_0.created_date, m1_0.last_modified_by, m1_0.last_modified_date, m1_0.username from member m1_0 where m1_ 0.team _id=? 테스트 2의 경우 한개의 쿼리만 나가는 것을 확인했습니다. select t1_ 0.team _id, t1_0.create_by, t1_0.created_date, t1_0.last_modified_by, t1_0.last_modified_date, m1_ 0.team _id, m1_0.member_id, m1_0.age, m1_0.create_by, m1_0.created_date, m1_0.last_modified_by, m1_0.last_modified_date, m1_0.username, t1_ 0.name from team t1_0 join member m1_0 on t1_ 0.team _id=m1_ 0.team _id 테스트 3의 경우 오류가 났습니다. 위의 테스트 1(getMembers로 접근), 테스트2(fetch join)의 경우 쿼리의 개수로 봤을 때 테스트 2를 사용하는 게 더 좋은 것 같은데 맞을까요? 테스트 3은 단방향인 경우 팀과 멤버를 같이 조회를 어떻게 해야되나요? 양방향 연관관계가 필요한 경우가 뭔가요? 원래 api 설계할 때 team, member를 각각 조회하는 경우만 만들었었는데, team과 member가 같이 조회되는 api를 만드는 경우도 있나요? (team/{id}, member/{id} 와 같은 경우만 만들어봤습니다.)
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터셋 분할 시에 iloc안쓰고 그냥 df[:210] 이렇게 나눠도 상관 없나요.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 범주형 데이터가 있으면 필수로 인코딩을 해줘야하는걸로 알고 있는데요 이때 무조건 라벨인코딩으로 진행하려고 하는데 문제없는 사항인가요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5-1 제출 시에 타겟은 Attrition_Flag에서 1과 0으로 기재되어있고 y_test.csv 파일을 봐도 0, 1 로 되어있던데 강의에서 제출 시에는 predict_proba로 확률값을 제출하던데 왜 그렇게 제출해도 괜찮은지 잘 이해가 안 갑니다 ㅜ
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요. 좋은 강의 감사드립니다. 오류 없이 결과는 나왔습니다. 제 코드가 맞는지, 엉뚱한지 확인이 어려워 질문드립니다. 맞는 풀이인가요? 고쳐야 할 부분이 어떤 부분인가요? ID 드랍하지 않고 쭉 진행했는데, 이러할 경우 문제가 되나요? roc_auc_score, submit 과정에서 pred에 [:,1] 을 하면 오류가 없고, 빼면 오류가 생기는데 pred[:,1]인 이유가 헷갈립니다. 랜덤포레스트에서 random_state=2024만 적어서 돌려도 되나요? 질문이 장황한데 답변 주셔서 항상 감사합니다! cols = ['Warehouse_block' ,'Mode_of_Shipment','Product_importance' , 'Gender'] from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols: X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col]) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X_train, y_train['Reached.on.Time_Y.N'], test_size = 0.2, random_state = 2024) from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(n_estimators=160, max_depth=20, random_state=2024) rf.fit(X_train, y_train) pred = rf.predict_proba(X_test) from sklearn.metrics import roc_auc_score print(roc_auc_score(y_test, pred[:,1])) pred = rf.predict_proba(X_test) pred submit = pd.DataFrame({ 'ID': X_test['ID'], 'pred':pred[:,1] }) submit.to_csv("result.csv", index=False) import pandas as pd df = pd.read_csv("result.csv")
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요 선생님, CLIENTNUM,Attrition_Flag 타겟 분류 문제에서, y가 분류니까 roc_auc_score을 구할 때 predict_proba를 이용해서 구했는데 from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(X_tr,y_tr) pred = model.predict(X_val) print(accuracy_score(y_val, pred)) # 정밀도 print(precision_score(y_val, pred)) # 재현율 (민감도) print(recall_score(y_val, pred)) # F1 print(f1_score(y_val , pred)) 정확도 ~ f1까지는 proba를 안하고 바로 구했는데 어떤 차이로 인해 얘네는 proba를 안하게 될까요 ? ㅜㅜ
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님, 이제 한 열흘 정도 남은 상황에서 강의 보면 이해는 되는데 실제로 타이핑 치려니까 머리속이 하얘지면서 어려운데, ㅠ 앞으로 남은 기간동안은 어떤 방식으로 공부를 하는게 좋을까요? 강의를 빼곡히 노션에 정리하면서 멘트나 그런것들 정리해뒀는데... 막막하네요ㅜ.ㅜ 1유형은 캐글 반복 + 2유형 기출만 반복(1~7회) 3유형은 회귀분석이랑 분산분석 2개만 외워가려고요..ㅎ 갑갑하네요ㅜ.ㅜ 증말
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제 1-2 accuracy를 구하는 문제를 저는 다음과 같이 풀었습니다. from statsmodels.formula.api import logit model = logit('purchase~income', data=train).fit() target = test.pop('purchase') pred = model.predict(test) > 0.5 from sklearn.metrics import accuracy_score print (round(accuracy_score(target, pred),3)) 답은 0.507로 동일하게 나오는 것 같습니다. 다음과 같이 풀어도 문제 없는걸까요? 그리고 pred = model.predict(test) > 0.5에서 '>0.5'의 역할은 무엇인지 다시 한번 설명해 주실 수 있을까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
답변 감사합니다!
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 cond1 = df['종량제봉투종류'] == '규격봉투' cond2 = df['종량제봉투용도'] == '음식물쓰레기' cond3 = df['2ℓ가격'] != 0 df = df[cond1 & cond2 &cond3] print(round(df['2ℓ가격'].mean())) 위 작업에서 cond1,2,3를 df에 대입하지 않고 print문으로 평균을 구할 수 있는 방법이 있나요?? 아니면 따로 방법이 없어서 df에 대입 후 2ℓ가격의 평균을 구한 건지 궁금합니다!
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하십니까. 선생님 수업 잘 듣고 있는데 제가 전처리나 피처엔지니어링에서 정확한 기준을 모르겠습니다. 그냥 object타입을 모두 제거하거나 아니면 결측치가 있는 경우 어떤것은 제거하고 어떤것은 0으로 채우는데 정확한 기준이 있나요? 있다면 대략적인 기준을 알고 싶습니다.
미해결
김영한의 실전 자바 - 중급 1편
안녕하세요. 궁금한 점이 있어 문의 드립니다. 아래의 isUnique 메서드가 실행되었을 때를 가정해서 질문해보면 isUnique 매서드가 호출이 될 때 스택에 새롭게 할당이 되고 코드가 실행이 될텐데 이 때 이 새롭게 생성된 스택 영역 안에서 매개변수로 받은 number의 값 말고 나머지 바디에 있는 count 변수나 lottoNumbers 배열을 아는 건 메서드 영역의 클래스 영역에서 클래스 네임별로 구별이 되어 있고 그 클래스의 메서드를 가져다 쓰는 거니 메서드 내부의 변수들도 그 클래스에 해당한다는 걸 스택영역에서 알 수가 있는 거죠 ? 생각해보니 메서드 영역과 스택 영역은 분리되어 있고 메서드가 호출될 때 새롭게 스택 영역이 할당이 될텐데 어떻게 새롭게 할당된 공간 안에서 메서드 내부의 값들을 다 알까 싶어서요. 감사합니다.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제에서 자료형이 object인 칼럼을 삭제하라고 하였는데 df.head()로 출력하면 'age', 'f1', 'f2', 'f5', 'views' 가 object인 칼럼을 제외한 칼럼이지만, df.info()로 출력하면 아래 사진과 같이 'age', 'f1', 'views' 만이 object인 칼럼을 제외한 칼럼으로 나옵니다. 어떤게 맞는 기준인지 판단하기가 어려워 질문 드립니다. 이럴 땐 어떻게 사고하고 판단하여야 할까요?
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
피처 엔지니어링의 전체 과정에 대해서 잘 이해가 안되서 질문 드립니다. 데이터 전처리를 통해 결측값과 이상값을 처리하고, 수치형 변수와 범주형 변수로 나눈 뒤 수치형 변수는 스케일링을 적용하고 범주형 변수는 인코딩을 적용하고 그 이후에 나눈 수치형 변수와 범주형 변수를 합친다. 만약 수치형 변수와 범주형 변수를 합친 후 train 데이터와 test 데이터의 shape를 출력했을 때, 각각의 컬럼 수가 다르다면 인코딩을 잘못한 것이다. train데이터와 test 데이터의 shape를 출력했을 때 컬럼 수가 다르다는 걸 알게 되면 그때부턴 어떻게 해야 되나요? 데이터를 다시 새로 load하고 범주형 변수와 수치형 변수의 컬럼 정보를 리스트에 저장한 후 train data와 test data를 합쳐서 합친 전체 data의 수치형 변수 컬럼과 범주형 변수 컬럼에 대해 각각 스케일링과 인코딩을 진행한 후 train data와 test data로 나눠줘야하는 건가요? 제가 이해한 것이 맞는 건지 궁금합니다!! 강의 잘 듣고 있습니다. 감사합니다!^^