ob = df.value_counts(normalize=True).sort_index() ob = ob.to _list() ex = [0.1, 0.05, 0.15, 0.7] 즉, 관찰값과 기댓값을 비율로 입력하여 관찰값 [0.2, 0.15, 0.1, 0.55] 기댓값 [0.1, 0.05, 0.15, 0.7] 으로 비교하면 안되나요? 비율은 같은데 통계량과 P-value 가 다르게 나오네요.
/usr/local/lib/python3.10/dist-packages/sklearn/linear_model/_logistic.py:458: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT. Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html Please also refer to the documentation for alternative solver options: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression n_iter_i = check optimize_result( 계속 이 문구가 뜨는데, 문제가 있는 걸까요??
기출2회를 풀고 있는데요 주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산) 이 문제를 시험환경에서 풀면 len(df)*0.8 df = df.iloc[:80] df before = df['f1'].std() median1 = df['f1'].median() # 20.574853076621935 import numpy as np df['f1'] = df['f1'].fillna(median1) after = df['f1'].std() # 17.010788646613268 이게 한 창 안에서 한번에 코딩이 되면서 before과 after 둘다에 17.010 어쩌고가 들어가서 print(before-after) 을 하면 0이 되더라고요 실행은 한 코딩창 안에서 진행해야 하는데 그럼 숫자를 따로 저장해서 20.574 - 17.010 을 출력해야 하나요?
안녕하세요 라벨인코딩 질문드립니다. 피처 엔지니어링 > 라벨인코딩 강의 부분 중에 LabelEncoder 를 le 라는 변수에 선언하고, 이후에 반복문 안에서 한 번 더 le 라는 변수에 encoder 를 다시 할당(?) 해주는데 뭔가 초기화(?) 같은 역할을 해줘야하는건가요? 아니면 반복문 안에 le = encoder() 부분은 생략해도 무방한가요? le = LabelEncoder() for col in cols: le = LabelEncoder() # 이 부분이 꼭 들어가야하나요? X_train[col] = encoder.fit_transform(X_train[col]) X_test[col] = encoder.transform(X_test[col])
다른분들이 질문남긴거에 답변 달아주신걸 봐도 아직 이해가 안되는 부분이 있습니다. <작업형2 모의문제 3 수업노트 중> y_test 파일의 최종 결과파일의 데이터는 0 아니면 1인 이진분류인데, predict_proba로 제출한 값은 확률값인데, 이 부분 확률로 제출하는게 괜찮다고 설명해 주신 부분을 보았는데도 아직 명확하게 이해가 되지 않습니다. 이 성능평가에 대한 부분을 어떻게 이해하면 될까요?
평가 데이터 분할 시 random_state를 예제와 동일하게 2022로 지정 후에 의사결정나무, 랜덤포레스트, XGBoost가 포함된 각 셀을 실행하면 강의 시 설명한 예제 pred[:10]과 값이 제가 직접 실행한 값과 다를 수 있는가요? 특히, 의사결정나무와 랜덤포레스트는 여러 번 실행하면 roc_auc_score 값이 계속 변경되는데 미세한 차이로 변경되어 채점 시 불이익 없는지도 궁금합니다. 아래와 같이 재실행 시 값이 변경되는 알고리즘을 정리했는데 맞는지 확인 부탁드립니다 재실행 시 값 변경 분류 DecisionTreeClassifier RandomForestClassifier 회귀 RandomForestRegressor 재실행 시 값 변경 X 분류 XGBClassifier 회귀 LinearRegression XGBRegressor
7회 기출유형 작업형3 문제1-3 질문입니다. model = logit('gender ~ weight', data=train).fit() target = test.pop('gender') pred = model.predict(test) >0.5 # (0.5보다 크면 1, 0.5보다 작으면 0) 학습 후 예측값을 넣어주는데 predict 라는 값을 그대로 넣어주는것이 아니라 조건을 넣어 True,False 의 값을 넣게됩니다. 앞전에 작업형2에서는 pred 값을 그대로 넣었는데 0.5 를 입력하여 pred 에 넣는이유는 무엇이고 0.5 는 어디에 정의되어 있는건지 궁금합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 선생님~ㅎ 유익한 강의와 시험을 위한 오징어게임에도 참여중인 수강생입니다! 다름이 아니라 어제자 미션에서 fillna를 이용해서 결측치 값을 컬럼의 중앙값으로 채워야 하는 부분이 있었는데요 ? 저는 결측치가 있는 column을 따로 지정하고 for문을 사용했는데.. 다른사람의 코드를 보니 df=df.fillna(df.median()) df의 median()은 어떤 값인지 .. 결측치가 하나일때는 그 값만 채워질것 같은데... 결측치가 여러개일때는 컬럼 사용없이 자동으로 결측치가 있는 컬럼의 결측치를 채워주는건가요 ?
안녕하세요. 수업 잘 듣고 있습니다. 문제 풀이 중에 질문이 있어서 문의 남깁니다. 작업형 1 모의 8번 문제도 groupby 메소드를 사용하고 ( .groupby( ).sum() ) 모의 9번 문제도 groupby 메소드를 사용( .groupby( ).count() )한 다음 특정 조건의 값을 찾는 과정을 진행하는 부분에서 같아보입니다. 다만 8번 문제에서는 .reset_index( ) 와 .iloc[ ] 를 사용해 원하는 값을 출력했고, 9번 문제는 이걸 사용하지 않고 .index[ ] 로 사용해서 풀이를 하셧는데요. 그래서 스스로 연습해보려고 8번 문제에서는 .index[ ] 를 사용해서 풀어봤더니 ('대구', 0) 라고 나오더라고요. 9번 문제는 .reset_index( ) 와 .iloc[ ] 를 사용해서 정답인 "11"을 바로 출력 가능했습니다. 문제에서 가장 적거나(오름차순), 가장 많은(내림차순) 구하는 경우도 있지만, 몇번째 값을 찾으라는 것도 있으니 그냥 .reset_index( ) 와 .iloc[ ] 를 사용하는 법 하나만 외워서 풀어도 될까요?? 여러 방법을 알고 있으면 좋긴하겠지만, 제 경우는 서로 헷갈리는 경우가 있어 머리가 더 복잡하더라고요. 그래서 두 방법중에서는 .reset_index( ) 와 .iloc[ ] 사용법을 외우는게 괜찮지 않을까 싶어서 여쭤봅니다. 혹시 index[ ] 를 사용하는 법이 쉬우면서 범용성이 좋다면 요령을 알려주시면 감사하겠습니다 아래는 제가 연습하면서 작성한 코드입니다. 문제9 에 .reset_index( ) 와 .iloc[ ] 적용해서 품 # 문제 9 import pandas as pd df = pd.read_csv("members.csv") df["subscribed"] = pd.to_datetime(df["subscribed"]) df["month"] = df["subscribed"].dt.month df = df.groupby("month").count().reset_index() print(df.sort_values("subscribed",ascending=True).iloc[0,0]) 문제8에 .index[] 사용시 출력값이 깔끔하지 않음 # 문제 8 import pandas as pd df = pd.read_csv("members.csv") # print(df.head()) # print(df.isnull().sum()) df = df.fillna(method = "bfill") # << 바로 뒤에 있는 값으로 대체 method = "bfill" 바로 앞에 있는 값 대체 시, method = "ffill" # print(df.head()) # print(df.isnull().sum()) dfgb = df.groupby(["city", "f2"]).sum(numeric_only=True).reset_index() ## dfgb.sort_values("views",ascending=False).index[2] # 출력값 ('대구', 0) dfgb = dfgb.sort_values("views",ascending=False) dfgb.sort_values("views",ascending=False).iloc[2,0] # 출력값 '대구'
validation data나 마지막 test나 model.predict_proba()통해 확률로 결과를 얻고 나서, 평가 할때는 y_val이나 제공된 y_test 는 [0또는 1]로 구성된 배열입니다 이 경우, model.predict()로 우선 0또는 1로 예측하고 평가도 이미 주어진 y_val또는 y_test로 한 뒤 결과 제출시에만 model.predict_proba()를 사용해서 아웃풋 포멧에 맞춰야 하는것은 아닌가요?