안녕하세요 수치형 변수 결측치를 채울 때 X_test 데이터에는 X_test의 age 평균값이 들어가야 한다고 생각했는데 X_test['age'] 에 X_train['age']의 평균값을 넣는데 이유가 있을까요? 주당 근무시간에 대해서도 test 데이터에 train 데이터의 중앙값을 넣어주던데 같은 질문입니다!
p-value값이 0.4이므로 귀무가설을 채택한다는 것은 결국 대립가설을 기각한다는 뜻이므로 B점수가 더 높다는 것을 기각한다는 뜻인가요? 혹시나 해서 A 와 B각각 평균을 내보았더니 A는 60점대고 B는 80점대였습니다. 제가 잘못 이해했는지 모르겠는데, B의 평균이 더 높기 때문에 원래대로라면 p값이 0.05보다 작게 나왔어야 하는 것 같은데 왜 그런가요 ?
수치형 데이터 스케일링 할때, 범주형 데이터 라벨 인코딩 하듯이, 아래와 같은 방법으로 해도 되는지요? 에러가 나서, 방법이 자체가 잘 못 된건지.. 아니면 방법은 틀리지 않은데, 부분적인 코드 작성에 실수가 있는건지 .... 여쭤보고 싶습니다. ^^;; from sklearn.preprocessing import MinMaxScaler n_cols = ['Age', 'AnnualIncome', 'FamilyMembers', 'ChronicDiseases'] for n_col in n_cols : scaler = MinMaxScaler() X_train[n_col] = scaler.fit _transform(X_train[n_col]) test[n_col] = scaler.transform(test[n_col])
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 train = train.drop 할 때가 있고 target = train.pop 할 때있는데 방법이 다른 이유가 무엇인지
5회 2형 lightgbm으로 작성하면 아래와 같은 문구가 나타납니다. 혹시 어떤 부분이 잘못되었을까여?? < 코드 > x_train = pd.get_dummies(x_train) x_test = pd.get_dummies(x_test) from sklearn.model_selection import train_test_split xx_train, xx_test, yy_train, yy_test = train_test_split(x_train, y_train, test_size = 0.2, random_state = 42) import lightgbm as lgb model_g = lgb.LGBMRegressor(n_estimators = 150, max_depth = 4, random_state = 42) model_g.fit(xx_train, yy_train) pred_t_g = model_g.predict(xx_test) < 에러 메세지 > [LightGBM] [Warning] Found whitespace in feature_names, replace with underlines [LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000399 seconds. You can set force_row_wise=true to remove the overhead. And if memory is not enough, you can set force_col_wise=true . [LightGBM] [Info] Total Bins 395 [LightGBM] [Info] Number of data points in the train set: 3007, number of used features: 23 [LightGBM] [Info] Start training from score 12318.722980 [LightGBM] [Warning] No further splits with positive gain, best gain: -inf [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
안녕하세요! # 주어진 데이터에서 상위 10개 국가의 접종률 평균과 하위 10개 국가의 접종률 평균을 구하고, 그 차이를 구해보세요 # (단, 100%가 넘는 접종률 제거, 소수 첫째자리까지 출력) 이 문제에서 df2 = df.groupby('country').max() 왜 이 코드가 나오는지 이해를 못하겠습니다 ㅜ 국가별로 접종률의 최대값이 나오는건가요?? 상, 하위국가를 구해야하니 국가별로 groupby를 해야하는 것은 알겠는데 max를 하는 이유는 무엇일까요?
https://www.kaggle.com/code/agileteam/t3-2-example-py/ 캐글에 올려주신 문제를 보고 있는데 위랑 아래 각각 결과가 다른데 이유를 모르겠어서 문의남깁니다. 로지스틱 회귀 문제의 계수문제는 logit으로 푸는게 맞는걸까요? import pandas as pd from sklearn.linear_model import LogisticRegression # 데이터 로드 df = pd.read_csv('/kaggle/input/bigdatacertificationkr/Titanic.csv') # 데이터 전처리 df['Gender'] = df['Gender'].map({'male': 0, 'female': 1}) # 로지스틱 회귀 모형 생성 및 학습 X = df[['Pclass', 'Gender', 'SibSp', 'Parch']] y = df['Survived'] model = LogisticRegression() model.fit(X, y) # parch 변수의 계수값 출력 print("Parch 변수의 계수값:", model.coef_[0][3]) import pandas as pd from statsmodels.formula.api import logit df = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv") formula = "Survived ~ C(Pclass) + Gender + SibSp + Parch" model = logit(formula, data=df).fit() model.params['Parch']
범주형 변수만 선택하여 아래와 같이 원핫인코딩했는데 타입이 모두 bool 바꼈습니다. 왜 int로 안바뀌는지궁금합니다. 또 bool 상태로 계속 진행해도 괜찮은가요? c_cols = ['Gender', 'Ever_Married', 'Graduated', 'Profession', 'Spending_Score', 'Var_1'] train = pd.get_dummies(train,c_cols) test = pd.get_dummies(test,c_cols)
안녕하세요 6회 작업형 3에 질문이생겨서 문의드립니다. 카이제곱 적합성검정의 경우 모든 기대빈도가 5이상일때 사용한다고 알고있었는데요 배포해주신 문제의 데이터는 보면 무증상 70% 그외 30%로 전체데이터수를 곱해 빈도로 변환해주면 [2.0, 1.0, 3.0, 14.0]입니다. 문제가 [감기약의 예상 부작용 비율과 항암약의 부작용 관찰값이 통계적으로 유의미하게 차이가 있는지 확인하려 한다. 카이 제곱 검정을 사용하여 검정 통계량을 구하시오.] 이경우 기대값에서 빈도가 5이하인 아픔: 10% 조금 아픔 5% 속 쓰림 15% 의 범주를 합쳐주고 검정을 해야하는것 아닌가요? 그냥 검정을해도 값이 나오긴하지만 이 값이 신뢰할만한 값이라고 할수있는건가요?
100만 이하의 약수가 존재하는지 확인할 때 반복문을 왜 101만까지 돌리는 건 가요? 저는 입력 받은 수까지 확인을 했었거든요... 이유가 궁금합니다! 백만보다 큰지 안 큰지 확인하기 위함인 건 알겠는데 수학적으로 이해가 좀 안 가서 질문을 드립니다. 추가적으로 알고리즘을 풀다보면 수학적인 지식이 좀 많이 부족하다고 느끼는데 어떻게 채우는 게 좋을지도 궁금합니다.. 6개월 정도 회사 다니면서 코테에만 집중해서 이직하는 게 현재 목표입니다. 제가 작성한 답안입니다. 답 도출까지는 못했습니다.
체험환경 2유형 학습중에 DataConversionWarning가 발생해서 문의드립니다. 아래와 같이 코드 작성 후에 roc_auc로 성능평가하는 과정에서 워닝이 발생했는데 이유가 무엇인가요?? # print(train.shape, test.shape) # (3500, 11) (2482, 10) # print(train.isnull().sum()) # print(test.isnull().sum()) train = train.fillna({'환불금액' : train['환불금액'].median()}) test = test.fillna({'환불금액' : test['환불금액'].median()}) # print(train.isnull().sum().sum()) # print(test.isnull().sum().sum()) # print(train.info()) # print(test.info()) # print(train.describe(include='O')) # print(test.describe(include='O')) # print(train.head()) target = train.pop('성별') train = train.drop(['회원ID'], axis=1) test_id = test.pop('회원ID') # print(train.shape, test.shape) c_train = train.select_dtypes(exclude='number') n_train = train.select_dtypes(include='number') c_test = test.select_dtypes(exclude='number') n_test = test.select_dtypes(include='number') from sklearn.preprocessing import LabelEncoder for i in c_train.columns: le = LabelEncoder() c_train[i] = le.fit_transform(c_train[[i]]) c_test[i] = le.transform(c_test[[i]]) train = pd.concat([c_train, n_train], axis=1) test = pd.concat([c_test, n_test], axis=1) # print(train.head()) # print(train.shape, test.shape) from sklearn.model_selection import train_test_split x_tr, x_val, y_tr, y_val = train_test_split(train, target, random_state=2024, test_size=0.2, stratify=target) print(x_tr.shape, x_val.shape, y_tr.shape, y_val.shape) from sklearn.ensemble import RandomForestClassifier rfc = RandomForestClassifier(random_state=2024) rfc.fit(x_tr, y_tr) pred1 = rfc.predict_proba(x_val) print(pred1[:,1].shape) print(y_val.shape) from sklearn.metrics import roc_auc_score print(roc_auc_score(y_val, pred1[:,1])) >> 프로세스가 시작되었습니다.(입력값을 직접 입력해 주세요) > (2800, 9) (700, 9) (2800,) (700,) (700,) (700,) 0.6341283030687979 /usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs) /usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs) /usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs) /usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs) 프로세스가 종료되었습니다.
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
(1) 요청사항 사용자로부터 주민등록번호를 입력받아, 성별을 '남성' 또는 '여성'으로 출력하세요. 주민등록번호 뒷자리 맨 앞자리는 성별을 나타냄 예) 800001-1231231 주민번호를 입력받으면 1을 출력하면 됨 1이면 남성, 2이면 여성을 출력하면 됨 (2) 입력코드 data = input() if data[7] == '1': print ("남성") else: print ("여성") (3) 코드결과 800001-1231231 남성 입력코드에서 data[7]이면 '-'인데, 어떻게 코드 결과가 원활하게 나올 수 있는 걸까요? 요청사항을 충족하려면, 아래와 같은 코드를 입력해야 하는 거 아닌가요?? (4) 수정코드 data1 = input() if data1.split("-")[1][0] == 1: print ("남성") else: print ("여성") 예제로 주신 코드가 오류 없이 작동하는 점이 궁금해 질문드립니다.
기출문제4-작업형1 에서 데이터의 갯수를 구하는 부분에서 강의 답안에는 len 을 사용하셨는데 아래와 같이 sum 사용시에는 에러가 나는 이유가 궁금합니다. print(len(df[cond1 & cond2 & cond3])) #6 데이터프레임의 행의 개수 print(len(cond1 & cond2 & cond3)) #8807, true/false 경우 모두 포함 print(sum(cond1 & cond2 & cond3)) #6 true만 계산 print(sum(df[cond1 & cond2 & cond3])) #오류나는 이유???
선생님 코드는 이렇게 했을 때 정답 51이 나오는데요. df.isnull().sum() df = df.dropna() df.isnull().sum() df.iloc[:int(len(df)*0.6)] Q1 = df['f1'].quantile(0.25) print(Q1) 제가 이렇게 했을 때는, 답이 55로 나오더라고요. import pandas as pd df = pd.read_csv("../input/big-data-analytics-certification/t1-data1.csv") df = df.dropna().reset_index(drop = True) df.iloc[:int(df.shape[0]*0.6)]['f1'].quantile(0.25) 행 개수를 뽑을때, df.shape[0]으로 할 수 있는 걸로 알고 있는데, 어디가 잘못된걸까요? ㅜ df.shape[0]으로 행개수 뽑고, 0.6곱한뒤 36.6->36으로 하라고 하셔서 round처리 안하고 int했는데 무슨 차이가 나는지 모르겠습니다... 그리고 reset_index를 하고 안하고 답 차이도 나는데, 어느게 좀 더 안전한 방식일까요? ㅜㅜ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 일원분산 분석에서 독립변수에 문자열 처리와 상관없이 동일한 결과값을 얻었고 이에 ols가 회귀분석에서 말씀해주셨듯이 문자형 변수를 알아서 변환해주는 것으로 이해했습니다. 이원분산분석에서는 문자열 처리에 따라 결과값의 차이가 났는데 그 이유로 문자열로 되어있는 종자 변수는 ols가 알아서 변환을 해주지만 여기서는 특이하게 수치형 자료로 나와있는 비료 변수가 사실은 범주형이기 때문에 ols가 알아서 변환을 하지 못해 문자열 처리를 꼭 처리를 해줘야 하는것으로 이해하면 정확할까요? 거기에 분산분석이 연속형 변수~범주형 변수이기에 분산 분석의 경우 의도적으로 다 C() 처리를 해주는게 깔끔하다고 수업중에 말씀하신것으로 이해하면 될까요?? 감사합니다.