학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 분명 CSV 파일 예시는 pred 0 0 1 0 이렇게 되어있는데, pred[:,1]로 하면 확률로 표시되는데... 그래도 가능할까요?
안녕하세요. 강사님의 강의를 듣는 도중, 질문의 내용과 같이, Zookeper의 Split Brain 방식과 QJM의 Split Brain 방식의 차이가 헷갈려서, 질문 드리게 되었습니다. 제가 이해한 바는 다음과 같습니다.먼저, Network File System의 문제점은 네트워크 문제 발생시에 동기화 문제가 발생하는 Split Brain Issue가 발생합니다. 이는, 두개의 Active NameNode가 생기기 때문에, 데이터의 corruption이 발생하기 때문에, 저희는 Quorum Journal Manager방식을 채택한 것입니다. 이때, QJM의 경우에도 Split Brain 이슈가 발생이 가능하나, 자체적으로 해결할 수 있다고 했습니다. 해당 방법을 찾아보니, 충분한 수의 Journal Node가 살아있다면, 데이터의 일관성을 유지하기 위해 다수결 원칙을 적용하여 정상적인 Jouranl Node들 간의 동의를 얻게 된다는 점입니다. 저는 해당 방법을 찾아보며, zookeper와 같은 Consoliation Algorithms 방식을 사용하고 있구나... 생각이 들었습니다. 그러니까 Split Brain 이슈 중 하나인 데이터 충돌이 발생했을 때, 맞지 않는 데이터를 지우고, 다수가 가지고 있는 데이터로 통일한다는 것인가..? 라는 생각이 들었습니다. 그러다가, Final Wrap UP 수업에서, zookeper의 경우 NN을 모니터링하며, 장애발생시 (이를 테면, Split Brain과 같은 이슈), StandBy NameNode를 Active NameNode로 전환하며, 여러 개의 Standby NN이 있을 경우 Leader 투표 기능을 통해, Active NameNode를 선출하는 기능이라고 정리하였습니다. Q1. 시간 순으로 어떻게 되는지가 헷갈립니다. 주키퍼를 통해 상시 모니터링을 하다가, 해당 이슈가 발생할 시, 재빠르게 Active Node로 전환이 되고 나서, 해당 Split Brain 이슈가 발생하며 데이터 충돌이 발생했던 부분을 QJM에서 다수결 원칙을 통해, 올바르지 않은 Journal Node에 있는 데이터는 삭제하며, 데이터의 일관성을 유지한다는 것일까요? Q2. 만약에 Active Node로 전환이 이루어졌는데도, 해당 문제가 지속적으로 해결이 되지 못해서, QJM에서 다수결 원칙을 통해 해결을 못하는 상황이 발생하면, 심각한 문제상황이라고 볼 수 있는건가요? 잘못 설계해서, 삭제된 데이터는 복구를 할 수 없는건가요? Q3. Network File System의 경우 hdfs-site.xml에 fencing을 추가함으로써, Split Brain issue를 해결할 수 있다고 공부할 수 있었습니다. 그런데, 상기 방법이 있는데도 불구하고, QJM 방식을 사용하는 이유는, 일정정도 해당 문제가 발생할 시, 데이터의 정합성을 보장해준다는 부분 때문에 차용하는 것일까요?
주어진 데이터셋(members.csv)의 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80 이상인 데이터의 'views' 컬럼 평균값 구하기 문제에서는 view 칼럼 내림차순으로 정렬된 df에서 10번째 값으로 상위 10번째 값으로 모두 대체후에 age 조건 이후 view 평균값을 구해주셨는데, 문제를 읽어보면 원래 기존의 df 에서 10번째 값까지 상위 10번째 view 값으로 대체 후에 정답을 구해야 하지 않나요? 주어진 데이터셋을 정렬한 후에 값을 구하면 답이 달라지는것 같습니다!
선생님 안녕하세요! 공부하다가 헷갈리는 부분에 대해 질분드립니다 🙂 1. 작업형 3에서 회귀 분석에서 범주형 변수는 get_dummies 사용하지 않고 선형 회귀 분석 하듯이 하면 되는것 맞을까요?? 2. 강의 이원 분산 분석 편에서 사후 검정 중 Tukey HSD를 진행할 때 비료에 .astype(str)를 하는 이유는 무엇인가요?? 3. 작업형 2에서 수치형 데이터로만 모델 성능을 예측할 때 이미 검증데이터 분리에서 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train[cols], train['성별'], test_size=0.15, random_state=0) 로 했다면 모델 학습 시 model.fit (X_tr, y_tr)로만 하면 되지 않나요?? 왜 fit(X_tr[cols])로 또 해줘야하는지 궁금합니다!
1. 빠르게(인코딩 없이 드랍) 베이스라인을 만들고 (데이터 분할과 랜덤포레스트 모델 random_state값 고정) 검증 - 1차 제출 인코딩 후 검증 -> 점수 좋아졌다면 - 2차 제출 (결측치가 있다면) 결측치 처리 다양한 방식 시도 - 3차 제출 다른 질문에서 이렇게 답변하셨는데 인코딩 없이 드랍시에도 데이터분할 treain_test_split 을 해야하는거군요?? 처음부터 드랍말고 라벨인코딩이나 원핫인코딩을 하면 무조건 성능이 좋은건 아닌가요? 라벨인코딩과 원핫인코딩 둘중 하나를 선택하셔서 풀이하시던데 기준이 궁금합니다
작업형2문제를 풀때 eda 후 전처리&피처엔지니어링 단계에서 범주형자료들을 무조건 라벨인코딩만 하려고 합니다 ((원핫인코딩과 라벨인코딩 둘다 실행시켜서 비교안할거임) 라벨인코딩만 하려는 상황에서도 train_test_split 을 사용해야 하는지 아니면 그냥 바로 랜덤포레스트를 돌려도 되는지 궁금합니다 작업형2 모의문제1 풀이를 적으면서 보는중인데 만약 train_test_split 을 사용안하면 랜덤포레스트 돌릴때 model(X_tr,y_tr) pred =model.predict(X-val) 이자리에 뭘 넣어야 할지 궁금합니다 +train_test_split 을 사용하면 좋은 점수를 받는지도 궁금합니다 +작업형2 모의문제1 풀이에서 강사님이 처음에 drop의 방식을 하셨는데 drop방식보단 라벨인코딩이 더 좋은점수를 받을수 있는 풀이방법인지도 궁금합니다
인코딩을 할때 선생님이 어쩔때는 원핫인코딩을 하시고 어쩔때는 레이블인코딩을 하시던데 그 인코딩을 정하시는 기준을 잘 모르겠습니다! 인코딩을 정하실때 그 경우에 대해서 자세히 알려주시면 감사하겠습니다 그리고 인코딩을 할때 컬럼도 몇개 정하셔서 하시던데 그 컬럼고르는 기준도 잘 모르겠습니다 그 기준에 대해서도 선택하는 방법을 알려주시면 감사하겠습니다 ㅠㅠ
#특정컬럼에 결측치가 있으면 데이터(행) 삭제 subset=[' native.country '] df = X_train. dropna (subset=['n ative.country' ]) # 결측치가 많은 특정 컬럼 삭제 drop(['workclass'], axis=1) df=X_train. drop (['workclass'], axis=1) 언제 drop을 쓰고, 언제 dropna를 쓰는지 궁금합니다.
아노바 사후검정에 대해 실습환경에서 코드 수행해보려고 하는데, 아래와 같이 오류뜨는건 실습환경에서 지원하지 않는 모듈이라고 생각하면 될까요? from scipy import stats from statsmodels.stats.multicomp import pairwise_tukeyhsd, MultiComparsion # Tukey HSD(투키) tukey_result = pairwise_tukeyhsd(df_melt['value'], df_melt['variable'], alpha=0.05) print(tukey_result.summary()) ImportError: cannot import name 'MultiComparsion' from 'statsmodels.stats.multicomp' (/usr/local/lib/python3.9/dist-packages/statsmodels/stats/ multicomp.py )
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 section 4-2 문제 1번에서 object 컬럼을 삭제할 때에 보여주신 방법 외에 다른 방법을 사용해봤는데,이 방법도 가능한 건지 궁금해서 질문드립니다. import pandas as pdimport numpy as np df = pd.read _csv("members.csv") df = df.select _dtypes(exclude='object') <----------------------------- 아예 object 컬럼을 제외한 나머지 컬럼을 df에 담아도 가능한 건지 궁금합니다!
안녕하십니까 강사님, 양질의 강의로 이해하기 쉽게 준비해주셔서 감사합니다. 실은 섹션 11, 예시문제 작업형 2, 16:57 쯤에 복습 중 for 문을 이용하여 조금 코드를 수정해보았습니다. 아래의 코드가 바로 정상 작동하는 일부 수정한 코드입니다. from sklearn.preprocessing import MinMaxScaler cols = ['총구매액', '최대구매액', '환불금액', '내점일수', '내점당구매건수', '주말방문비율', '구매주기'] for col in cols: scaler = MinMaxScaler() X_train[col] = scaler.fit_transform(X_train[[col]]) X_test[col] = scaler.transform(X_test[[col]]) X_train.head() 근데 바로 위의 `LabelEncoder`을 수행한 코드를 보면 for 문과 함께 [col]로 작성이 되어있는데, 이 일부 수정된 코드에서는 [col]을 적으면 왜 이 오류가 나오는지 잘 모르겠습니다. ValueError: Expected 2D array, got 1D array instead: [[col]] 를 작성해야만 정상 작동하더군요. 혹시 LabelEncoder를 적용한 바로 위의 코드와 어떤 차이가 있어서 []을 한번 더 기입해야 하나요?.