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 를 안해서 그냥 뜨는건가요..?
안녕하세요. 공부하던 중에 궁금한 게 있어서 글 남깁니다! 작업형2 모의 문제를 풀 때랑 기출 10회 풀 때 사용하는 pop함수가 헷갈리는 게 있어 여쭤봅니다. 모의 문제에서는, 예를 들어 5-2에서는 csv 파일 생성 예시가 다음과 같아서 id는 train에서 삭제, test에서는 pop으로 저장해두고 타겟인 price는 검증 데이터 분리 과정에서 삭제하는 것으로 알고 있습니다. id,price 34323697,238 29927138,183 120362,234 그런데 기출 10회 풀이를 보면 타겟인 pred(=총가스사용량)에 대하여 pop 함수를 사용하는 것으로 나오는데요. 타겟 값을 pop에 넣는 경우도 있고 안 넣는 경우도 있는 거 같아서 해야만 하는 과정인지 궁금합니다. 혹시 pop을 쓰면 랜덤포레스트 식에서 drop을 안 해줘도 되고, 안 쓰면 drop을 해줘야 하는 거랑 관련된 걸까요? target = train.pop('총가스사용량')
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 실제로 제출은 csv 파일로 하는데, 그 중간에 rmse 등 평가지표 구하잖아요 이거 뭐 답안 제출하는 곳이 있는건가요? 아니면 코딩한걸 전부 다 보고 확인하는걸까요?? 아니면 그냥 평가지표 점수로 단순히 모델 선택할떄 쓰는 기준인건가요? 어리석은 질문같지만.. 평가지표를 계속 구하고있는데 실제로는 csv 로 제출하는데 왜 구하는걸까하는..
1. aixs=1 이 헷갈립니다 열방향 계산일때 axis=1을 넣는다고 하셨는데, 학교명 별로 1학년2학년3학년 4학년5학년6학년 쭉 다 더하는건 ---->가로 방향이면 각 행을 더하는 것 아닌가요? 2. 가장 많은 전체/교사로 내림차순 정렬했을때 그 표만 읽고 바로 교사수 19로 답 적어도되나요? 아니면 print뭐를 사용해서 19인걸 코드로 나타내야하나요? 감사합니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형2 예시문제는 train과 test의 상품의 종류가 달라 원핫인코딩 시 컬럼의 수가 달라 머신러닝에서 에러가 발생하게 된다고 해서 train.pop을 하고 합쳐서 인코딩 후 다시 분리 해서 진행해야 한다고 하셨는데 기본형만(하나의템플릿만)외워가려는데 문제없는 자료에서도 concat을 쓰고 진행해도 문제가 없을까요?
import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/members.csv") df.sort_values('views',ascending=False).head(10) df.iloc[:10,-1]=9690.0 cond = df['age']>=80 print(df[cond]['views'].mean()) 이렇게 코딩을 하면 답이 다른 이유가 궁금합니다.
시나공 책 작업형2 모의고사에는 from sklearn.metrics import mean_squared_error result = mean_squared_error(y_val, pred,squared = False) print("RMSE :" , result) 으로 나오고 선생님 기출 강의를 보면 from sklearn.metrics import mean_squared_error def rmse(y_true, y_pred): return mean_squared_error(y_true, y_pred)**0.5 으로 하라고 설명해주시는데 어떤것이 정답인가요?
전처리할때 target=train.pop('Segmemtation')은 train에만 있으니까 빼준다?라는건 알겠는데 tartget 값만 트레인에있느거 빼주는 것 같은데 test_ID=test.pop['ID'] 이건 꼭 해줘야하나요? 다른 문제들 경우 그냥 트레인에 있는 타겟값만 pop처리 이거 하나만 하는 것 같아서요.. 감사합니다
1-3. date_added가 2018년 1월 이면서 country가 United Kingdom 단독 제작인 데이터의 갯수 에서 제가 df['date_added']=pd.to_datetime(df['date_added']) cond1 = df['date_added'].dt.year ==2018 cond2 = df['date_added'].dt.month ==1 cond3 = df['country']=='United Kindom' print(len(df[cond1&cond2&cond3])) 했는데 저는 0이 나옵니다ㅠ 답은 6이 나와야하는 것 같은데 뭐가 잘못된 것일까요 감사합니다
안녕하세요 선생님, 800대로 나와야 될 RMSE 값이 1100대로 나오는데, 차이가 좀 커서 문제가 있는것 같아요. 혹시 제 코드좀 봐주실 수 있을까요? import pandas as pd train = pd.read_csv("data/customer_train.csv") test = pd.read_csv("data/customer_test.csv") cols = test.select_dtypes('object').columns # ## 전처리1. 컬럼삭제 # train = train.drop(cols, axis=1) # test = test.drop(cols, axis=1) ## 전처리2. 레이블인코딩 from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols : 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.drop('총구매액', axis=1), train['총구매액'], test_size=0.2, random_state=1 ) # 랜덤포레스트 from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor(random_state=1) model.fit(X_tr, y_tr) pred = model.predict(X_val) # 평가 from sklearn.metrics import root_mean_squared_error print(root_mean_squared_error(y_val, pred)) ## 컬럼삭제 : 1135.0196199 ## 레이블인코딩: 1136.88945667
문제 1-3에서 ' 문제1-2에서 적합한 회귀모형을 이용하여 test데이터에서 design값을 산출한 후 ...라고 되어있습니다. model = ols ( "design ~ c1+c2+c4" , data=test ) .fit () 문제 1-2에서 이렇게 적합된 모델을 먼저 불러오고 test [ 'pred_design' ] =model.predict ( test ) 테스트 예측값 산출 식 작성하면 안되나요~? 문제에서 1-2에서 적합한 모형 이용이라는 문구가 있어서 헷갈립니다~! ㅠㅠ 이렇게 풀었을때는 8.17이 정답으로 나옵니당..
안녕하세요 강사님! 좋은 강의에 감사드립니다. 다름이 아니라 코랩에서는 가끔 df로 받는 연산함수같은 경우, 다시 한번 눌렀을 때 결과가 계속 달라지는 경우가 있더라구요. (예시) df = len(df) * 0.7 등 하면 점점 df가 줄어든다던지.. 그래서 코랩에서는 다시 클릭하기보다, 다음 +코드로 넘어가서 작성을 하는데요. 시험 환경에서는 무조건 첫줄부터 새로 시작인가요? 중간 과정 확인하다가 연산이 두번 되어서 값이 바뀔까봐 염려되네요 ㅠㅠ