묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)
보스턴 집값 강의에서 csv 파일이 없습니다.
안녕하세요 훌룡한 강의 잘 수강하고 있습니다.보스턴 집값 예측 강의에서 csv 파일이 없습니다. 말씀 주신 링크에서도 찾을 수가 없습니다ㅠㅠjm90.hong@gmail.com 제 메일이긴 하는데 csv 파일 보내 주셔도 됩니다 감사합니다^^
-
해결됨파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)
보스턴 집값 예측 15번 강의에 쓰이는 csv
보스턴 집값 예측 15번 강의에 쓰이는 csv는 어디서에서 다운받는지요?
-
미해결
DNN GridsearchCV시 score가 좀 이상합니다
안녕하세요, 딥러닝 모델을 sklearn GridsearchCV를 통해 튜닝하고 있습니다. 모델과 GridsearchCV는 아래와 같이 정의되어 있습니다. def create_model(n_filter_1st_conv, conv_n_filter, conv_kernel_sizes, n_params_1st_dense, dense_layer_sizes, dropout, lr, l1, l2): model = Sequential() model.add(BatchNormalization()) model.add(Conv2D(filters=n_filter_1st_conv, activation=tf.nn.leaky_relu, kernel_size=(conv_kernel_sizes, conv_kernel_sizes), padding='same', strides=(1, 1), kernel_initializer='he_normal', bias_initializer='he_normal', kernel_regularizer=regularizers.l1_l2(l1=l1, l2=l2), activity_regularizer=regularizers.l1_l2(l1=l1, l2=l2))) for n_filters in conv_n_filter: model.add(Conv2D(filters=n_filters, activation=tf.nn.leaky_relu, kernel_size=(conv_kernel_sizes, conv_kernel_sizes), padding='same', strides=(1, 1), kernel_initializer='he_normal', bias_initializer='he_normal', kernel_regularizer=regularizers.l1_l2(l1=l1, l2=l2), activity_regularizer=regularizers.l1_l2(l1=l1, l2=l2))) model.add(MaxPooling2D(pool_size=(4, 2))) model.add(Dropout(dropout)) model.add(Flatten()) model.add(Dense(n_params_1st_dense, activation=tf.nn.leaky_relu, kernel_initializer='he_normal', bias_initializer='he_normal', kernel_regularizer=regularizers.l1_l2(l1=l1, l2=l2), activity_regularizer=regularizers.l1_l2(l1=l1, l2=l2))) model.add(Dropout(dropout)) for layer_sizes_2 in dense_layer_sizes: model.add(Dense(layer_sizes_2, activation=tf.nn.leaky_relu, kernel_initializer='he_normal', bias_initializer='he_normal', kernel_regularizer=regularizers.l1_l2(l1=l1, l2=l2), activity_regularizer=regularizers.l1_l2(l1=l1, l2=l2))) model.add(Dense(1, activation='sigmoid', kernel_initializer='he_normal', bias_initializer='he_normal')) model.compile(loss=tf.keras.losses.BinaryCrossentropy(), optimizer=Adam(learning_rate=lr), metrics=[tf.keras.metrics.BinaryCrossentropy(), tf.keras.metrics.Accuracy(), tf.keras.metrics.BinaryAccuracy(), tf.keras.metrics.AUC()]) return modelClassification_model = KerasClassifier(build_fn=create_model)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=rand_st)parameters = { 'n_filter_1st_conv': [16], 'conv_kernel_sizes': [2], 'conv_n_filter': [(16, 32, 64)], 'n_params_1st_dense': [1000], 'dense_layer_sizes': [(64, 8)], 'lr': [1e-3], 'dropout': [0.25], 'l1': [1e-3], 'l2': [1e-3], 'batch_size': [64], 'epochs': [100],}grid_search = GridSearchCV(estimator=Classification_model, param_grid=parameters, refit=False, scoring='accuracy', return_train_score=True, cv=2, error_score="raise")with tf.device('/GPU:1'): grid_search = grid_search.fit(X_train, y_train, verbose=1)# gridesearch 결과print("최고의 파라미터 :", grid_search.best_params_)print("최고 평균 accuracy : ", grid_search.best_score_) (문제를 해결하기 위해 cv=2로 두고, parameter들을 하나씩 하여 단순화해두었습니다. ) CV가 진행 중에는 아래와 같이 accuracy와 auc가 높게 나오다가, CV 1/2 Epoch 100/100 2/2 [==============================] - 0s 8ms/step - loss: 34.9196 - binary_crossentropy: 0.3310 - accuracy: 0.0000e+00 - binary_accuracy: 0.9829 - auc: 0.9911 CV 2/2 Epoch 100/100 2/2 [==============================] - 0s 10ms/step - loss: 38.7264 - binary_crossentropy: 0.3268 - accuracy: 0.0000e+00 - binary_accuracy: 0.9744 - auc_1: 0.9958 CV가 끝난 후 grid_search.best_score_로 accuracy를 뽑을 때는 아래처럼 낮은 accuracy가 나오는 것을 확인하였습니다. 최고 평균 accuracy : 0.6196581196581197 제가 알기로는 best_score_는 metric에 지정된 값에 대한 평균이라고 알고있는데.. 제가 생각하기로는 1. model compile에 넣어준 Keras loss 및 Keras metric과 GridsearchCV에서 사용하는 sklearn metric이 작동하는 방식이 달라 생기는 문제 2. CV부분에서 출력되는 loss와 metric들이 training set의 것 이라서 일어나는 게 아닐까 생각만 하고 있는데, 혹시 왜 이런 일이 일어나는지 알고계시는 분 계시면 답변 부탁드립니다.
-
미해결혼자 공부하는 머신러닝+딥러닝
사이킷런 input 2차원배열 관련 질문
안녕하세요. 좋은 강의 해주셔서 감사합니다. sklearn에 들어가는 자료의 배열에 대해 질문이 있습니다. 강의를 보면 train_input은 reshape을 해주는 반면, train_target은 reshape을 해주지 않습니다. 사이킷런에서는 Input으로 들어가는 데이터에 대해서만 2차원 배열을 요구하나요? 그렇다면, target 데이터는 1차원이든 2차원이든 상관이 없나요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
sklearn model을 java에서 load
안녕하세요. 파이썬 머신러닝 완벽가이드, 캐글 Advanced 머신러닝 실전 박치기 강의와 책(파이썬 머신러닝 완벽가이드)을 통해 머신러닝을 공부하고 있는 직장인 입니다. 수업내용과는 직접적으로 관련은 없지만 궁금한게 있어서 문의드립니다. sklearn으로 만들어진 lightGBM, RandomForest 모델을 save해서 load하는데 pickle , joblib 등을 활용이 되는건 알겠는데 그렇게 저장된 model을 java에서 호출하여 사용하는 방법이 혹시 있는지 알고싶습니다. tensorflow는 model save시 hdf5 형식으로 저장 후 java에서 load해서 사용한다고들 하는데 sklearn으로 만들어진 모델은 혹시 어떤 방법이 있을까요? * 강의와 직접적인 연관이 없는 질문인거 같아 메일을 통해 문의를 드려볼까 하였으나, 메일주소를 알수가 없어서 이렇게 질문게시판에 남깁니다.