Jayden1116
Jayden`s LifeTrip ๐Ÿ”†
Jayden1116
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • Jayden`s (481)
    • ๐Ÿฏ Hello, Jayden (144)
      • ์ผ๊ธฐ (1)
      • ์‹ ๋ฌธ (121)
      • ์Œ์•… (6)
      • ๊ฒฝ์ œ (16)
    • ๐Ÿ’› JavaScript (88)
      • ์ด๋ชจ์ €๋ชจ (4)
      • ๋ฐฑ์ค€ (44)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (40)
      • ๋ฒ„๊ทธ (0)
    • ๐ŸŽญ HTML CSS (6)
      • ํํŠธ๋ฏ€๋ฅด (2)
      • ํฌ์Šค์Šค (4)
    • ๐Ÿ’ป CS (13)
      • ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (1)
      • ๋„คํŠธ์›Œํฌ (9)
      • ์šด์˜์ฒด์ œ (1)
      • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค (0)
      • ๋””์ž์ธ ํŒจํ„ด (1)
    • ๐Ÿ Python (71)
      • ๋ฐฑ์ค€ (67)
      • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
    • ๐Ÿ’ฟ Data (156)
      • ์ด๋ชจ์ €๋ชจ (65)
      • ๋ถ€ํŠธ์บ ํ”„ (89)
      • ๊ทธ๋กœ์Šค ํ•ดํ‚น (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿ”ด ๋ธ”๋กœ๊ทธ(ํ™ˆ)
  • ๐Ÿฑ Github
  • ๊ธ€์“ฐ๊ธฐ
  • ํŽธ์ง‘
hELLO ยท Designed By JSW.
Jayden1116

Jayden`s LifeTrip ๐Ÿ”†

๐Ÿ’ฟ Data/์ด๋ชจ์ €๋ชจ

[๋”ฅ๋Ÿฌ๋‹]ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹(sklearn์˜ RandomizedSearchCV, keras_tuner์˜ RandomSearch)

2022. 3. 1. 16:04

RandomSearch๋ฅผ ์ด์šฉํ•œ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹

0. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋ฐ Normalization

# ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
from tensorflow.keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

# input ๋ฐ target ๋ฐ์ดํ„ฐ ํ™•์ธ
X_train.shape
set(y_train)

# Normalization
X_train = X_train / 255.
X_test = X_test / 255.

1. ๋ชจ๋ธ๋ง

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Dropout

model = Sequential()

model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(128, activation='relu'))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(X_train, y_train, epochs=30, batch_size=32, validation_data=(X_test, y_test))

# ๋ฒ ์ด์Šค๋ชจ๋ธ ํ…Œ์ŠคํŠธ
model.evaluate(X_test, y_test, verbose=2)

image

2. ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹

2-1. sklearn์˜ RandomizedSearchCV

from tensorflow.keras.regularizers import L1, L2
from sklearn.model_selection import RandomizedSearchCV
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier

# ๋ชจ๋ธ ์„ค๊ณ„
def build_model_rscv(nodes, L1_values, L2_values, dropout_values):

    model = Sequential()

    model.add(Flatten(input_shape=(28, 28)))
    model.add(Dense(nodes, activation='relu',
                    kernel_regularizer=L2(L2_values)))
    model.add(Dense(nodes, activation='relu',
                    activity_regularizer=L1(L1_values)))
    model.add(Dropout(dropout_values))
    model.add(Dense(10, activation='softmax'))

    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

    return model

# KerasClassifier๋กœ wrapping
temp_rscv = KerasClassifier(build_fn=build_model_rscv, verbose=0)

# params ์„ค์ • ๋ฐ RandomizedSearchCV
import random

nodes=[random.randint(32, 128) for n in range(5)]
L1_values=[random.uniform(0, 0.000001) for n in range(5)]
L2_values=[random.uniform(0, 0.000001) for n in range(5)]
dropout_values=[random.uniform(0, 1) for n in range(5)]
batch_sizes=[random.randint(32, 64) for n in range(5)]
epochs=[random.choice(range(30, 160, 10)) for n in range(5)]

params = dict(nodes=nodes,
              L1_values=L1_values,
              L2_values=L2_values,
              dropout_values=dropout_values,
              batch_size=batch_sizes,
              epochs=epochs
              )

model_best = RandomizedSearchCV(estimator=temp_rscv,
                                param_distributions=params,
                                n_iter=10,
                                cv=3,
                                scoring='accuracy',
                                verbose=1,
                                n_jobs=-1
                                )

model_best.fit(X_train, y_train, validation_data=(X_test, y_test))

import pandas as pd

rs = pd.DataFrame(model_best.cv_results_).sort_values(by='rank_test_score').head()
rs.T

image

image

2-2. keras_tuner์˜ RandomSearch

from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Flatten, Dropout

!pip install -U keras-tuner
import kerastuner as kt

# ๋ชจ๋ธ๋ง(์€๋‹‰์ธต์˜ ๋…ธ๋“œ์ˆ˜์—๋งŒ ํŠœ๋‹ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.)
def model_builder(hp):
    model = Sequential()

    hp_units = hp.Int('units', min_value=32, max_value=512, step=64) # python์˜ range์™€ ๋น„์Šทํ•œ ๊ฐœ๋…

    model.add(Flatten(input_shape=(28, 28)))
    model.add(Dense(hp_units, activation='relu'))
    model.add(Dense(hp_units, activation='relu'))
    model.add(Dropout(0.2))
    model.add(Dense(10, activation='softmax'))

    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics='accuracy')

    return model

# ํŠœ๋„ˆ ์„ธํŒ…
tuner = kt.RandomSearch(
    hypermodel=model_builder,
    objective='val_loss',
    max_trials=5
    )  

# ์ตœ์ ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’ ์„œ์นญ
tuner.search(X_train, y_train, epochs=10, validation_data=(X_test, y_test))

best_hps = tuner.get_best_hyperparameters(num_trials = 1)[0]

model = tuner.hypermodel.build(best_hps)
model.fit(X_train, y_train, epochs = 10, validation_data = (X_test, y_test))

image

image

image

์ด์ƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :)

'๐Ÿ’ฟ Data > ์ด๋ชจ์ €๋ชจ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋”ฅ๋Ÿฌ๋‹, NLP] ๋ถ„ํฌ ๊ฐ€์„ค, Word2Vec  (0) 2022.03.06
[๋”ฅ๋Ÿฌ๋‹, NLP] ๋ถˆ์šฉ์–ด, ์ถ”์ถœ, BoW/TF-IDF  (0) 2022.03.06
[๋”ฅ๋Ÿฌ๋‹]keras_cifar100 ์ด์šฉํ•œ ๊ฐ„๋‹จ ์‹ ๊ฒฝ๋ง ๋ฐ ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹  (0) 2022.02.26
[๋”ฅ๋Ÿฌ๋‹]๊ฐ„๋‹จ ์‹ ๊ฒฝ๋ง ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ๋ง, ์„ฑ๋Šฅ ๋น„๊ต  (0) 2022.02.26
[๋”ฅ๋Ÿฌ๋‹]์˜ตํ‹ฐ๋งˆ์ด์ €(Optimizer)  (0) 2022.02.24
    '๐Ÿ’ฟ Data/์ด๋ชจ์ €๋ชจ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋”ฅ๋Ÿฌ๋‹, NLP] ๋ถ„ํฌ ๊ฐ€์„ค, Word2Vec
    • [๋”ฅ๋Ÿฌ๋‹, NLP] ๋ถˆ์šฉ์–ด, ์ถ”์ถœ, BoW/TF-IDF
    • [๋”ฅ๋Ÿฌ๋‹]keras_cifar100 ์ด์šฉํ•œ ๊ฐ„๋‹จ ์‹ ๊ฒฝ๋ง ๋ฐ ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹
    • [๋”ฅ๋Ÿฌ๋‹]๊ฐ„๋‹จ ์‹ ๊ฒฝ๋ง ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ๋ง, ์„ฑ๋Šฅ ๋น„๊ต
    Jayden1116
    Jayden1116
    ์•„๋งˆ๋„ ํ•œ๋ฒˆ ๋ฟ์ธ ์ธ์ƒ์„ ์—ฌํ–‰ ์ค‘์ธ Jayden์˜ ์ผ์ง€๐Ÿ„๐ŸŒŠ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”