묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결현업 실무자에게 배우는 Kaggle 머신러닝 입문 - ML 엔지니어 실무 꿀팁
강의자료
강의 자료 어딧나요 실습자료 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
-
미해결처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
cross_val_score 에러
강의 자료 104 / 106 관련 질문입니다. 104: K-Fold 테스트 안녕하세요 현재 맥북 m2 pro 칩으로 강의를 듣고 있습니다.아래와 같은 에러 나오는데 혹시 해결 방법을 알 수 있을까요?/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/neighbors/_classification.py:228: 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 self._fit(X, y)/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:842: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/sklearn/metrics/_scorer.py", line 136, in call score = scorer._score(... 에러 찾다가 못찾고 일단 다음 강의 듣다가 106 자료에서 KNN, Random Forest, Extra Trees 에서 동일 에러가 발생하는 것 같습니다... 일단 강의 듣는걸 멈추고 에러부터 해결해야겠습니다... ㅠㅠ
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
섹션 8. keras sequence 기반의 dataset 관련 질문입니다.
안녕하세요 교수님!keras sequence 기반 dataset에서 label을 one-hot encoding을 해주는 과정에서,pd.get_dummies와 pd.factorize를 소개해주셨는데.. 만약 강의에서와 달리 pd.factorize로 인코딩하지 않고, pd.get_dummies로 인코딩했다면 모델 생성 부분에서 마지막 layer에output = Dense(2, activation='softmax')(x)로 바꿔준다면 동일한 로직인 것이 맞겠죠..? 또 다른 질문으로는, 이진 분류라면 아무래도 softmax 보다는 sigmoid를 사용하는 편이 더 나은 것인지 궁금합니다! (혹시 성능적으로 더 좋을까요...?)좋은 강의 정말 감사합니다!!
-
미해결처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
강의자료 문의
머신러닝 배경지식: 머신러닝 모델과 성능평가의 이해의 설명해주시는 마크다운 파일(01-RECOGNITION.md)은 학습자료에 미포함인가요?시간될 때 마다 읽어보고 싶어서 문의드립니다!
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
사전 훈련 모델 VGG16을 이용하여 CIFAR10 학습 모델 구현 성능
CIFAR10_Pretrained_01에서 성능이 매우 낮게 나와서 공유된 코드 복붙도 해보고 껐다 켜보기도 했지만 결과가 이상합니다. 뭐가 문제일까요?
-
미해결현업 실무자에게 배우는 Kaggle 머신러닝 입문 - ML 엔지니어 실무 꿀팁
강의 자료 요청
강의 자료 부탁 드리겠습니다.mue@naver.com
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
ImageDataGenerator 질문
Generator랑Augmentation이랑 같은건가요? 코드에서 아래 부분을 이미지데이터에서의 fit_transform이랑 비슷하다고 생각하면 되나요? # ImageDataGenerator 적용. fit()후 flow()로 image batch를 넣어주어야 함.data_generator.fit(image_batch)data_gen_iter = data_generator.flow(image_batch)# ImageDataGenerator를 동작하기 위해서는 next()등으로 iteration을 호출해야함.aug_image_batch = next(data_gen_iter)아래 코드를 실행하기 전에 type이 float일 때랑 코드를 실행해서 int일 때랑 값은 큰 차이가 없는데 왜 show_image 했을 때 그림이 다르게 나오는건가요? aug_image = aug_image.astype('int')저는 width_shift 했을 때 위아래로 되는 거 같은데... 교수님 코드랑 결과가 다릅니다.. 교수님 코드처럼 width_shift는 좌우 이동으로 생각하면 되나요?
-
해결됨처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
RMSLE의 사용에 관한 질문입니다
머신러닝 적용을 위한 Feature Engineering 강의 10:10 부분에서 질문 드립니다!이번 강의에서는 RMSLE 계산을 위해 아래와 같이 함수를 만들었습니다.def get_rmsle(y_actual, y_pred): diff = np.log(y_pred + 1) - np.log(y_actual + 1) mean_error = np.square(diff).mean() return np.sqrt(mean_error) 그리고 이를 rmsle_scorer 객체로 만든 후rmsle_scorer = make_scorer(get_rmsle, greater_is_better=False)GridSearchCV 의 scoring에 넣어줬는데요,lasso_grid=GridSearchCV(estimator = Lasso(), param_grid = hyperparams, verbose=True, scoring=rmsle_scorer, cv=5, n_jobs=-1) 전에 강의에서는 RMSLE를 계산하기 위해 아래와 같은 과정을 거쳤던 것이 생각났습니다.from sklearn.metrics import mean_squared_log_error print("RMSLE:", np.sqrt(mean_squared_log_error(y_true, y_pred))) 이번 강의에서 np.sqrt(mean_squared_log_error(y_true, y_pred)) 를 사용하지 않고, RMSLE를 계산하기 위한 함수를 따로 만든 이유는 GridSearchCV의 scoring에 적용을 하기 위함이라고 이해하면 되는 것인지 궁금합니다! 그리고, 함수를 필수적으로 만들어야 한다면def get_rmsle(y_actual, y_pred): return np.sqrt(mean_squared_log_error(y_true, y_pred)) 와 같은 형식으로 함수를 만들 수도 있는 것인지 여쭙고 싶습니다!
-
해결됨처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
머신러닝 적용을 위한 Feature Engineering 강의 질문입니다
머신러닝 적용을 위한 Feature Engineering 강의 8:20 부분에서 질문입니다!!EDA를 통해 humidity와 대여량의 관계를 그래프로 파악했을 때, humidity가 70 이상일 때 대여량이 크게 감소하는 것을 파악했고, 이를 기반으로 humid 컬럼을 만들었습니다.이때, humid 컬럼의 값이 1 이면 humidity가 70 이상으로, 습한 날씨이며, 결국 자전거를 타기에 '좋은 날씨는 아니다 '라는 의미로 이해를 하였는데요위에서 fit 컬럼을 만들 때에는 값이 1일 때, 자전거를 타기 '좋은 날씨이다' 라고 표현을 하였던 것과 반대라는 것이 눈에 띄었습니다.이렇게 feature engineering을 진행할 때, 척도의 의미가 컬럼별로 달라도 관계가 없는 것인지 궁금합니다!!보통 설문지 문항에서 척도의 의미가 다른 경우, 역코딩을 했던 기억이 있는데, 머신러닝의 경우에는 다른 것인지 여쭙고 싶습니다..!
-
미해결처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
'KNeighborsClassifier'만 nan으로 나오는 이유를 모르겠습니다...
knn_model = KNeighborsClassifier() logreg_model = LogisticRegression() svc_model = SVC() decision_model = DecisionTreeClassifier() random_model = RandomForestClassifier() extra_model = ExtraTreesClassifier() gbm_model = GradientBoostingClassifier() nb_model = GaussianNB() xgb_model = XGBClassifier(eval_metric='logloss') lgbm_model = LGBMClassifier() models = [ knn_model, logreg_model, svc_model, decision_model, random_model, extra_model, gbm_model, nb_model, xgb_model, lgbm_model ] k_fold = KFold(n_splits=10, shuffle=True, random_state=0) # K-Fold 사용 results = dict() for alg in models: alg.fit(X_train, y_train) score = cross_val_score(alg, X_train, y_train.values.ravel(), cv=k_fold, scoring='accuracy') results[alg.__class__.__name__] = np.mean(score)*100 위 코드를 실행한 후 results를 출력해보면 아래처럼 KNeighborsClassifier 모델만 nan값이 나오는데 그 이유를 모르겠습니다.. 혹시 몰라 아래 코드처럼neighbor 수를 지정해서 돌려봐도 nan 결과가 뜨는데 이유가 있을까요...??다른 모델들도 다 안되면 데이터 문제인가 싶을텐데, knn 모델만 그래서 원인이 감이 잡히지 않습니다ㅜ knn_model = KNeighborsClassifier(n_neighbors = 3)
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
캐글 너무 길게 출력됩니다.
첫번째 사진처럼 너무 길게 출력되어 밑에 사진처럼 변경하고 싶은데 어떻게 변경하나요? 플랫폼은 캐글 사용중입니다.
-
미해결[입문자를 위한] 캐글로 시작하는 머신러닝 • 딥러닝 분석
시계열 딥러닝 그래프에서 수치가 달라요
이렇게 강의에 나오는 수치와 다르네요왜그런거죠?
-
해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
섹션6 CIFAR10 imshow() 시각화 문제
안녕하세요 교수님!5강 시작부분에서 get_preprocessed_data의 scaling 파라미터 값을 False로 하셨는데, 그러면 픽셀값을 255로 나누지 않는 것인데 이렇게 하면 다음과 같은 흰색 배경만 뜨더라구요..그래서 구글링을 해보니까 plt.imshow() 함수가 0 ~ 1 사이의 float형이나 0 ~ 255 사이의 int형만 가능하다고 해서 다음과 같이 바꾸었는데 제대로 출력되더라구요..!... def get_preprocessed_data(images, labels, scaling=True): if scaling: # 직접 scaling을 한다고 했을때? images = np.array(images/255.0, dtype=np.float32) else: images = np.array(images, dtype=np.int32) # 이 부분을 수정했습니다. oh_labels = np.array(labels, dtype=np.float32) return images, oh_labels def get_preprocessed_ohe(images, labels): images,labels = get_preprocessed_data(images, labels, scaling=False) # OHE oh_labels = to_categorical(labels) return images, oh_labels ...교수님 코드랑 다른 부분이 없는데 저는 흰 배경으로만 나오고, 저렇게 설정해야지만 올바르게 나오는 점이 이상해서 여쭤보고자 합니다ㅠㅠ! 혹시 몰라서 해당 부분 전체 코드 올리겠습니다!from tensorflow.keras.datasets import cifar10 from tensorflow.keras.utils import to_categorical from sklearn.model_selection import train_test_split # seed 설정 def set_random_seed(seed_value): np.random.seed(seed_value) python_random.seed(seed_value) tf.random.set_seed(seed_value) def get_preprocessed_data(images, labels, scaling=True): if scaling: # 직접 scaling을 한다고 했을때? images = np.array(images/255.0, dtype=np.float32) else: images = np.array(images, dtype=np.float32) oh_labels = np.array(labels, dtype=np.float32) return images, oh_labels def get_preprocessed_ohe(images, labels): images,labels = get_preprocessed_data(images, labels, scaling=False) # OHE oh_labels = to_categorical(labels) return images, oh_labels def get_train_valid_test_set(train_images, train_labels, test_images, test_labels, valid_size=0.15, random_state=2023): train_images, train_ohe_labels = get_preprocessed_ohe(train_images, train_labels) test_images, test_ohe_labels = get_preprocessed_ohe(test_images, test_labels) train_images, valid_images, train_ohe_labels, valid_ohe_labels = train_test_split(train_images, train_ohe_labels, test_size=valid_size, random_state=random_state) return train_images, train_ohe_labels, valid_images, valid_ohe_labels, test_images, test_ohe_labelsset_random_seed(2023) (train_images, train_labels), (test_images, test_labels) = cifar10.load_data() print(train_images.shape, train_labels.shape, test_images.shape, test_labels.shape) train_images, train_ohe_labels, valid_images, valid_ohe_labels, test_images, test_ohe_labels = get_train_valid_test_set(train_images, train_labels, test_images, test_labels, valid_size=0.15, random_state=2023) print(train_images.shape, train_ohe_labels.shape, valid_images.shape, valid_ohe_labels.shape, test_images.shape, test_ohe_labels.shape)NAMES = np.array(['Airplane', 'Automobile', 'Bird', 'Cat', 'Deer', 'Dog', 'Frog', 'Horse', 'Ship', 'Truck']) def show_images(images, labels, ncols=8): figure, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(22, 6)) for i in range(ncols): axs[i].imshow(images[i]) label = labels[i].squeeze() axs[i].set_title(NAMES[int(label)]) show_images(train_images[:8], train_labels[:8], ncols=8) show_images(train_images[8:16], train_labels[8:16], ncols=8) show_images(train_images[16:24], train_labels[16:24], ncols=8)감사합니다!
-
미해결[비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기
레몬에이드 데이터 자료에 없습니다
강의자료에 레몬에이드 파일이 없는데어디서 다운받아야 하나요
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
from tensorflow.keras.models import Sequential
제목처럼 Sequenital을 import해서 쓰는 것과 keras.Sequential을 쓰는 것의 차이가 있나요? models의 차이가 있는지 궁금합니다. 실행했을 땐 똑같긴한데.. 굳이 왜 다른지 궁금합니다. Dense(1, input_shape = (2, ), ....) 에서 왜 2가 앞에 쓰이는 건가요?? 앞은 보통 행인데...ㅠㅠkeras가 행은 몇개인지 몰라도 되는데 피쳐는 몇개인지 알아야 하는건가요?
-
해결됨딥러닝 CNN 완벽 가이드 - Fundamental 편
save_weights_only=True로 했을 때 load_model 오류
안녕하세요 교수님!ModelCheckpoint에서 ModelCheckpoint('best_model.h5', save_weights_only=True, monitor='val_loss', save_best_only=True, mode='min')save_weights_only = True로 했을 때 아래와 같은 load_model 에러가 나더라구요..그래서 구글링을 해봤는데 저렇게 설정할 경우에 모델 아키텍처가 저장이 안되어서 load_model을 할 수 없다고 json 파일로 모델을 따로 저장하고 나중에 json 모델을 다시 불러오는 방법을 사용하라고 나왔습니다. 강의 중에도 언급해주셨지만 save_weights_only = True로 했을 때의 이점이 있을까요..? False로 했을 때 교수님께서 모델을 불러올 때 충돌..? 비슷한 것이 난다고 하셨는데 좀 더 세부적인 내용을 알고 싶습니다..!만약에 True로 설정했다면 매번 json으로 모델을 저장하는 과정을 거쳐야 하는 것인지 궁금합니다!model.save() 함수도 있던데 이거는 modelcheckpoint와 달리 학습 중에 저장은 안되는 것 같아서요.. 항상 감사합니다 교수님!!
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
정보가 손실되는 이유가 궁금합니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의에서 conv2d연산을 진행한 후에 softmax연산을 해주기 위해 3차원 데이터를 flatten시켜줬는데 flatten시켜준 후에 바로 softmax함수를 적용시키면 어떤 이유로 정보가 손실되는 이유에 대해서 궁금합니다.dense를 하나 추가하고 softmax를 적용하는 것과 dense없이 flatten후 softmax를 적용하는 것의 차이점에 대해서 궁금증이 생긴 것 같습니다!
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Validation Data Set Augmentation 문의
안녕하세요.좋은 강의 감사합니다.Validation Data Set Augmentation 관련 문의드립니다.tr_ds = image_dataset(tr_path, tr_label, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, augmentor=image_augmentor, shuffle=True, pre_func=xcp_preprocess_input) val_ds = image_dataset(val_path, val_label, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, augmentor=None, shuffle=False, pre_func=xcp_preprocess_input) Validation Set 부분은 Augmentation을 None으로 진행했는데요.Augmentation을 None이 아닌 것으로 진행해도 성능에는 크게 문제가 없을 것으로 생각합니다. (별도 Test Set으로 평가했을 때, 평가 성능이 저하 된다거나 그렇진 않을 것 같아서요.)Validation Set 부분도 Train Set과 마찬가지로 Augmentation을 진행해도 되지 않을까요? 딱히 구글링으로 명확한 답을 찾기 어려워 선생님의 의견을 얻어보고 싶습니다.감사합니다.
-
미해결처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
다르게 적용해보는 Feature Engineering2 강의 질문입니다
다르게 적용해보는 Feature Engineering2 강의의 15:13 부분에서 질문입니다강의에서는 mean_survival_rate = np.mean(df_train['Survived'])와 같이 df_train 데이터프레임 Survived 컬럼의 값에 대해 평균을 구하고이를 생존할 확률 이라고 정의하였습니다. 저는 Survived 컬럼의 값은 0과 1로만 이루어져 0은 사망, 1은 생존 이라는 의미를 나타내는 명목 척도로 이해하였는데요,이에 대해 평균을 내면서 값을 구하는 것이 확률로써의 의미를 가질 수 있다는 것이 조금 이해가 되지 않습니다.제가 잘못 받아들이고 있는 것인지 좀 더 보충 설명 해주시면 너무 감사할 것 같습니다!
-
미해결처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 문제로 개념/활용 익히기) [데이터과학 Part2]
다르게 적용해보는 Feature Engineering2 강의에서 질문입니다
다르게 적용해보는 Feature Engineering2 강의의 15:11 부분부터 궁금한 점이 있어 질문 올립니다.해당 강의에서는 다음과 같이 2개의 리스트를 작성하였는데요family_survival_rate = list() family_survival_rate_NA = list()동승자가 있는지/없는지를 기준으로 2개의 리스트에 값을 각각 넣어준다는 전체적인 과정은 이해했지만, 사실 family_survival_rate_NA 리스트는 어떤 이유로 존재하는 것인지에 대한 설명이 조금 필요한 것 같습니다. family_survival_rate = list() mean_survival_rate = np.mean(df_train['Survived']) # 0.3838383838383838 for i in range(len(df_all)): if df_all['Family_Name'][i] in family_rates: # 동승자가 있는 경우 family_survival_rate.append(family_rates[df_all['Family_Name'][i]]) # family_rates[df_all['Family_Name'][i]] -> family_rates 딕셔너리에서 위의 이름들을 키 값으로 하고, 이에 해당하는 Survived 값을 찾음 else: # 동승자가 없는 경우 family_survival_rate.append(mean_survival_rate) 동승자가 있으면 family_survival_rate 리스트에 Survived 컬럼의 생존 확률을 넣고, 동승자가 없으면 family_survival_rate 리스트에 생존 확률의 평균값을 넣어주면 충분한 것 아닌가 하는 생각이 드는데요, family_survival_rate_NA 리스트가 어떤 용도로 사용되는 것인지, 그리고 왜 값은 0과 1만을 넣는 것인지 조금 더 설명해 주시면 감사할 것 같습니다!!