안녕하세요, 이전에 테스트 데이터를 넣었을 때 오류가 난다고 했던 수강생입니다. 주구매상품과 구매지점을 넣어서 훈련시키는 건 해결했는데(이전 질문은 해결됨), 수치형 데이터로 훈련시킬 때 아래와 같은 오류메세지가 뜹니다. 농산물은 주구매상품에 있는 변수던데 수치형만 넣었는데도 불구하고 어디서 나온건지.. 이해가 안됩니다.. 우선 제가 입력했던 코드는 다음과 같습니다. 바쁘신 와중에 확인해주셔서 감사합니다!! import pandas as pd pd.set_option('display.max_columns',None) train = pd.read_csv("data/customer_train.csv") test = pd.read_csv("data/customer_test.csv") train['환불금액'] = train['환불금액'].fillna(0) test['환불금액'] = test['환불금액'].fillna(0) #cols=['주구매상품','주구매지점']#0.6117 cols=['회원ID','총구매액','최대구매액','환불금액','방문일수','방문당구매건수','주말방문비율','구매주기'] target=train.pop('성별') #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, target, test_size=0.2, random_state=0) from sklearn.ensemble import RandomForestClassifier model=RandomForestClassifier() model.fit(x_tr,y_tr) pred=model.predict_proba(x_val) #print(pred) from sklearn.metrics import roc_auc_score print(roc_auc_score(y_val, pred[:,1])) pred = model.predict_proba(test) submit = pd.DataFrame({ 'pred': pred[:,1] }) submit.to_csv('result.csv', index=False) print(pd.read_csv('result.csv'))
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 강사님. 5회 기출유형 작업형 2 베이스 모델 만드는 부분(6분 43초) 관련하여 질문드립니다. rmse 값을 구하니 강사님 값과 다르게 나옵니다(강사님: 1529, 본인: 1548) 랜덤포레스트분류 문제에서는 RandomForestClassifier() 괄호 안에 random_state를 지정해주었는데 이번 강의에서는 RandomForestRegressor() 괄호 안에 아무것도 넣지 않아서 값이 다르게 나온 것일까요? 위의 내용이 맞다면 RandomForestRegressor에도 random_state를 지정해준 후 모델 성능을 개선시켜야 하는 것인지 궁금합니다.
소팅에 관해서 질문 드립니다! 예를 들어 f1컬럼을 내림차순으로 소팅한다고 했을 때 df=df['f1'].sort_values(ascending=False) df=df.sort_values('f1', ascending=False) 위의 두가지 코드는 어떤 차이가 있는지 알 수 있을까요? 그리고 추가로 소팅 후 n개의 데이터를 선택할 때 rese_index를 하는게 좋은지 궁금합니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 값이 -0.049847258342167904 인데 round 써서 3번째까지 나타내려 하니 -0.050 이라 출력이 -0.05 까지밖에 안나와요 ㅜ 이럴 땐 어떻게 하나요? 그냥 print(-0.050) 해야할까요?
만약 결측치가 있는 데이터가 문제로 나오게 된다면 범주형 데이터는 최빈값으로 채우고 수치형 데이터는 중앙값으로 채우려는데 괜찮을까요? (중앙값이 이상치에 덜 민감하다고해서 평균말고 중앙값으로 대체하려고 합니다.) 아니면 제거하는게 좋을까요? 그리고 경우에 따라 다르겠지만 보통 대체하는 쪽이 성능이 더 좋은가요?
작업형 2번을 풀 때, test 데이터의 행은 절대 삭제하면 안되고, 삭제할 경우 0점 처리를 맞는다고 알고 있습니다. 제가 말의 뜻을 정확하게 이해를 못해서 그런데, 혹시 제가 이해한 것이 맞는지 한 번만 확인해주시면 감사하겠습니다. [제가 이해한 뜻] 1번 상황) 예를들어 처음에 train, test 데이터가 주어졌습니다. train.shape, test.shape으로 찍었을 때, (10000,10), (2000,9)가 나왔습니다. 전처리를 통해서, train과 test의 불필요한 컬럼, 결측치가 너무 많은 컬럼을 삭제하였습니다. 그 이후 train.shape, test.shape을 찍었을 때, (10000,8), (2000,7) 이 나왔습니다. 2번 상황) 전처리 하기 전 train.shape이 (2000,9) 가 전처리 후 train.shape이 (1800,7) 이 나왔습니다. 제가 이해하기로, 1번 상황처럼 train과 test의 동일한 컬럼을 삭제하는 것은 상관 없는데, 2번 상황처럼, test의 행 데이터가 손실되는 것은 안되는 걸로 이해했습니다. 혹시 제가 이해한 것이 맞는지 봐주시면 정말 감사하겠습니다..!
df2 = df.groupby('country').max() #시간에 따라 접종률이 점점 올라감 df2 = df2.sort_values(by='ratio', ascending = False) 여기서 df.groupby('country')['ratio'].max() 를 하지 않고 그냥 max()를 한 이유가 뭔가요? 접종률 상위 10개국, 하위 10개국을 찾는게 아닌가요?
선생님 대부분 3유형에서는from scipy import stats 불러오구 stats.levene~ , stats.wilcoxn 이렇게 등등 다 불러오던데f_oneway만 import scipy.stats as stats 이렇게 불러오는거로 가르쳐 주시던데 from scipy import statsstats.f_oneway(그룹A,B,C) 이렇게 해도 분석이 되는거 같은데 이렇게 불러두 되나요? 어떤건 from scipy.stats as stats이고어떤건 from scipy import stats 여서 좀 헷갈리더라구요 ㅠㅠ 또 카이제곱은 from scipy.stats import Chisquare 이런형태구...from scipy import Chisquarestats.Chisquare(df['a'],df['b']) 이렇게 해두 되나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요! 기출(작업형2) 한가지 방법으로 풀기 13분쯤에 print("\n ===== 카테고리 비교 =====") print(train.describe(include='O')) print(test.describe(include='O')) 이 코드가 있는데 이 코드는 회귀인 경우에만 사용하는 건가요? EDA라서 생략을 해도 되는 것 같긴 한데, 어떤 때 사용하는지 그리고 목적이 무엇인지 궁금합니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 target 값은 절대로 절대로 인코딩해서는 안되나요? ? 그냥 아묻따 전처리 때 분리하는 것이 가장 좋겠죠??
안녕하세요 선생님! 2번문제에서 1~6학년까지의 학생수 합을 구하고 그걸 교사수로 나누는 부분에서 이렇게 강의와 똑같이 코딩을 하였는데 sum() 아래의 식이 출력되면서 실행할 때마다 전체학생수가 계속 늘어나더라구요,, 이건 왜 그런걸까요? sum식을 한번 써주고 주석처리해야하는걸까요?
안녕하세요. 개인 프로젝트를 진행하다 이해가 안되는 부분이 있어서 질문드립니다. 맛집 서비스를 위한 REST API (HTTPS)를 구성하는 프로젝트로, 맛집 정보들은 DB를 사용하여 관리 REST API는 CRUD 연산을 제공 할 것입니다. 일단 프론트단을 제외하고 백만 개발한거라 @RestController를 사용해서 테스트를 끝냈는데, 이제 프론트까지 개발하려고 하니 @RestController는 json 형식으로 데이터를 받잖아요. 화면을 생성해야하는데 @RestController와 별개로 새로운 클래스를 생성하여 @Controller를 붙여 뷰단만 따로 관리하는 컨트롤러를 생성하는게 좋을까요? @RestController는 REST API를 관리하는 컨트롤러, @Controller는 화면단만 관리하는 컨트롤러로 각각 생성하는게 좋은건지 아니면 개발했던 @RestController에 ModelAndView를 활용하는 것 중 뭐가 더 나은건지? 궁금해요. 찾아보니 RestController에 화면을 줄때 자바스크립트나 ajax를 사용하는 방법이 있긴한데 보통 뭐를 더 사용하고 뭐가 더 좋은지 궁금합니다.