학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저와 비슷한 질문을 남긴 사람들의 글을 읽어보았는데, 명확하게 이해가 가질 않아서 질문을 남깁니다. 부모 변수가 자식 인스턴스를 참조하는 상황 Parent poly = new Child(); 이 상황은 Parent를 상속받은 Child라는 객체를 생성하여, 현재 Parent,Child 두 객체가 생성된 상황이며, poly를 부모 변수로 선언하였습니다. 부모는 자식에 대해 알 수 없다라는 논리에 따라 Child라는 객체가 있어도 부모 Parent는 Child에 선언된 메서드와 필드를 모른다는 것이 영한님의 설명인 것 같습니다. 그런데, 오버라이딩을 하게 되더라도 제 생각에는 여전히, Parent는 Child의 메서드와 필드를 모르는 상황은 여전한데, 어떻게 Parent가 Child 메서드가 오버라이딩을 한 상황을 알고, 오버라이딩된 Child 메서드가 우선권을 갖는지 잘 모르겠습니다. 이는 '부모는 자식에 대해 알 수 없다'라는 논리와 맞지 않는 것 같아서 부가적인 설명을 원합니다.
안녕하세요 강사님! [3-4 Feature engineering.ipynb] 파일 복습 중에 # train, test 합쳐서 인코딩 후 분리하기 cols = list(X_train.columns[X_train.dtypes == object]) print(X_train.shape, X_test.shape) all_df = pd.concat([X_train, X_test]) all_df = pd.get_dummies(all_df[cols]) line = int(X_train.shape[0]) X_train = all_df.iloc[:line,:].copy() X_train X_test = all_df.iloc[line:,:].copy() X_test print(X_train.shape, X_test.shape) 이부분에서 '원핫인코딩' 대신 '레이블인코딩'을 하면 어떻게 해야될지 의문점이 생겼습니다. 레이블 인코딩시에는 train데이터에는 fit_transform() 을 하고 test 데이터에는 transform() 을 하는 것으로 알고 있는데 X_train 데이터와 X_test 데이터를 합쳤을 때는 fit_transform(), transform() 둘 중 어떤 것을 사용하고나서 분리해야되는지 궁금해서 질문 드립니다! 아래는 fit_transform()을 이용해서 구현해본 코드입니다. X_train.shape, X_test.shape df = pd.concat([X_train, X_test]) df.select_dtypes(include='O').columns c_cols = ['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'] df.select_dtypes(exclude='O').columns n_cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week'] from sklearn.preprocessing import LabelEncoder for col in c_cols: le = LabelEncoder() df[col] = le.fit_transform(df[col]) line = len(X_train) X_train = df.iloc[:line,:].copy() X_test = df.iloc[line:,:].copy() print(X_train.shape, X_test.shape)
코드 1 model.fit(train[cols], target)라고 X_val값에 train[cols]을 대입한 걸로 이해했는데, 코드2 검증용 데이터의 train은 라벨인코더가 된 cols가 포함된 train 값이라 그냥 train으로 적은 건가요? 갑자기 헷갈려서 여쭤봅니다 ㅠㅠ,,,..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 혹시 다대다의 경우는 중간테이블을 두어 푸는 것이 실무에서 필수적이라 했는데, 일대 다의 경우에도 비즈니스 로직 분리 : 중간 테이블을 통해 비즈니스 로직(보상 분배, 순위 계산 등)을 별도로 관리함으로써, 엔티티 간의 복잡성을 줄입니다. 데이터의 독립적 관리 : 과거 랭킹 기록, 보상 내역 등 변경하지 않아야 할 데이터를 독립적으로 저장하고 관리할 수 있습니다. 이런 이유로 중간테이블을 두기도 하나요? 예를 들어 사용자와 랭크 관계가 일대 다인 상황에서(사용자는 한 랭크만 참가 가능) 과거 정보들을 저장하기 위해 중간테이블을 두고 거기에 전적 같은 정보를 저장하고자 하는데 이런 경우 일대 다임에도 중간테이블을 놔두어 관리해도 되나요?
Entity들의 id를 따로 Column으로 name을 지정해주지 않아도 괜찮나요?? 연관관계 매핑할 때 예를 들어 MEMBER랑 TEAM을 매핑하면 MEMBER의 FK 이름은 TEAM_ID인데 TEAM의 PK는 ID라서 TEAM의 ID를 TEAM_ID로 바꾸지 않아도 괜찮은건가요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 이전에 들었던 실전! JPA1편에서는 https://start.spring.io/ 이곳에서 다운로드 하고 설치했는데 이번 강의에선 왜 따로 소스코드를 주시고 시작했는지 궁금합니다! 단순하게 springBoot를 사용하지 않아서인가요? 아니면 초기 설정이 힘들어서인가요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 시험환경에서 sum, len 등 함수 사용시 numeric_only=True 입력하지않아도 결과가 나오는데 무조건 적어야하는걸까요?
8회 기출에서 민맥스 스케일링 풀이에서는 from sklearn.preprocessing import MinMaxScaler scaler=MinMaxScaler() 민맥스스케일러를 스케일러로 받아와서 풀이하잖아요 전~에 앞쪽에서 풀이 해주신 코드로 외워서 저는 from sklearn.preprocessing import minmax_scale 로 바로 df['특정컬럼']=minmax_scale(df['특정컬럼']) 이렇게 하는게 더 쉬워서 이걸로 외워져서 풀었는데 혹시 스탠다드 스케일링도 저렇게 바꿔 쓰는 import 가 있나요!? ㅜㅜ from sklearn.preprocessing import StandardScaler scaler=Standardscaler() df[' ']=scaler.fit_transform(df[[' ']]) 이렇게 sclaer 로 받아오는 풀이밖에 없나용 ㅠㅠ import 뒤를 살짝씩 바꿔봐도 다 오류가 뜨네요 ㅜ ㅜ
안녕하세요 라벨인코딩 시 질문이 있어 글 남깁니다. 첫번째질문 cols에 select_dtypes()로 컬럼명 담을 때, cols = train.select_dtypes(include='object') cols = train.select_dtypes(include='object').columns for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) ... ... 첫 번쩌 cols와 두 번째 cols 중 둘 다 상관 없나요? 아니면 두 번째로 해야 하나요?? 두번째질문 그리고 (아직까진 시험에는 나온 적은 없는 걸로 압니다만) train.describe(include='object') 이처럼 범주형 변수 유니크 값 확인 시, train 과 test 의 유니크 값이 다르면 라벨인코딩을 진행 하는 것으로 알고 있는데요. 어쩔 땐 concat 으로 합치고 후 원핫인코딩 후 다시 분리 하라고 하는데, 그냥 유니크 값이 다르면 라벨인코딩 진행을 바로 하면 될까요? 강사님 강의 중 concat 사용하는 부분이 있었던 것 같은데 못 찾고 있어서 질문 남깁니다..
안녕하세요, 강사님! 8회 작업형 2 문제에서, customerID 컬럼은 중복된 ID값이 없이 모두 고유한 값이어서 제거를 해도 상관없지만,중복값이 있는 ID는 제거를 하면 안된다고 하셨는데요! 그렇다면, 실제 시험에서 중복값이 있는 ID가 나온다면 그 컬럼은 전처리를 하지 않고 그냥 두어도 상관없을까요? 상황1)중복값이 있는 ID컬럼이 'object'값일때 제거를 하는게 나을까요? 아니면 int형으로 변환하여 모델학습에 넣어야할까요? 또는 라벨인코딩을 해야하는 것일까요? 상황2)중복값이 있는 ID컬럼이 'int/float'값일때 제거하는게 나을까요? 라벨인코딩을 할 필요가 없으니 그냥 두어도 괜찮을까요?
안녕하세요, 강사님. 2유형 train_test_split 관련 질문이 있어 글 적습니다. 제가 깊은 이해보다는 2유형에서 기본만 확실하게 해서 40점을 얻는 것이 목표입니다. 그래서 랜덤 포레스트 모델로 기본적인 과정만 진행하고 정답을 제출하려고 합니다. 불필요 칼럼 제거, 결측치 대체, 라벨 인코딩 정도를 진행한 후 train_test_split을 test size 0.2로 할 계획이었습니다. 그런데 생각해보니, train_test_split을 쓰는 이유 자체가 현업의 실제 데이터 분석에서는 test 데이터라는 것이 따로 없으니 기존 데이터를 분할해서 일부는 학습, 일부는 검증을 하기 위해 쓰는 것이라고 이해되는데, 빅데이터분석기사 실기 2유형에서는 애초에 학습하라고 준 train 데이터와 검증 예정인 test 데이터를 주는데, 왜 굳이 train 데이터를 train_test_split로 분리를 해서 fit시킨 모델로 결과를 제출해야 하는 것인지 이해가 되지 않습니다. 그냥 train 데이터를 분리하지 않고 전부 fit시켜 제출하면 되지 않나요? 저도 여러 커뮤니티에서 관련 글들을 찾아 보았는데, 그렇게 하면 과적합 우려가 있다는 얘기들이 많은데 이 부분에 관련해서 강사님 같은 전문가의 설명이 필요해서 질문드립니다. 애초에 과적합 우려가 있다는 의견들은 test 데이터가 train 데이터와 분포나 이런 것들이 거의 일치한다는 가정이 있어야 하는 것 아닌가요? 그리고 처음 말씀드렸듯이 '빅데이터분석기사 실기 2유형 40점 취득'을 목표로 했을 때, train_test_split(test size 0.2)를 fit한 모델을 제출하는 것이 맞을까요? train_test_split 없이 전체 train 데이터를 fit한 모델을 제출하는 것이 맞을까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 지수표기법은 숫자 뒤에 e-10 이렇게 나오는거 일거 같은데, 컬럼 전체보기는 무슨말인가요?? head 쳤을때 컬럼 개수가 많으면 중간에 .... 으로 생략되는걸 다 본다는건가요???
저는 코드를 이렇게 작성을 해보았는데, import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/members.csv") df = df.sort_values('views',ascending = False) df.loc[:21,-1] = 9690.0 ->이렇게 입력을 하니 views컬럼의 값들이 9690.0으로 대체 되는 것이 아니라 , views컬럼의 값들은 그대로 있고, -1이라는 컬럼이 옆에 하나 더 생성 되는데 어떻게 해야하나요?ㅜㅜ df.head(13) # cond = df['age'] >= 80 # print(df[cond]['views'].mean())
안녕하세요 강의 잘 보고있습니다. 작업형1 캐글에 올려주신 연습문제들 계속 막혀서 풀지를 못하는데, 현 시점에서 작업형1 어떻게 하는게 좋을까요? 작업형 2랑 3은 어느 정도 이해해서 외우면 될 것 같은데 작업형1은 도무지 괄호안에 어떤 값을 넣어야 하고, 어떤 괄호를 써야하는지 헷갈립니다. 현시점에서 작업형1을 어떻게 해야 최대한 점수를 끌어올릴 수 있을지 조언 부탁드립니다 🥲 감사합니다.