ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DL] 딥러닝 기초
    __Data Analysis/__Machine Learning 2021. 5. 6. 22:52

    TIL

     

    - 회귀 가설함수 > Wx+b

    - 회귀 비용함수 > 경사하강: 그라디언트~

     

    - 분류 가설함수 > 1/ 1-e^(-wx+b) -> 0~1 사이의 값으로 바꿈

        -시그모이드: 바이너리  
    - 분류 비용함수->

        -소프트맥스: 다중분류 - proba
        -크로스엔트로피: CE - onehot encoding, proba에서 가장 확률 높은 것만 최고(1) 나머지 0

        -소프트맥스 안에 시그모이드 포함

     

    - 분류/회귀 딥러닝

    - 라이브러리 호출

    import pandas as pd
    import numpy as np
    from keras.models import Sequential
    from keras.layers import Dense
    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    import matplotlib.pyplot as plt
    from keras.utils import to_categorical
    import tensorflow as tf
    from sklearn.model_selection import train_test_split
    import warnings
    warnings.filterwarnings(action='ignore')
    from sklearn.datasets import load_iris
    from sklearn.datasets import load_boston

     

    - iris : 다중분류

    dataset  = load_iris()
    print(dataset .keys())
    
    
    df = pd.DataFrame(data=dataset.data,
                      #columns=dataset.feature_names
                      columns=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
                      )
    df["target"] = dataset.target
    
    X = df.iloc[: , :-1]
    y = df.iloc[: , -1]
    
    y_oh = to_categorical(y) 
    
    X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.2, random_state=160)
    
    model = Sequential()
    model.add(Dense(units=64, input_dim=4, activation='relu'))   
    model.add(Dense(units=3,               activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    model.fit(X, y_oh, epochs=200, validation_split=0.1)
    
    proba = model.predict(X_test)
    pred = np.argmax(proba, axis=1)
    eval = model.evaluate(X, y_oh)

     

    - boston price : 회귀

    from sklearn.datasets import load_boston
    
    data = load_boston()
    df = pd.DataFrame(data =data.data ,  columns=data.feature_names)
    df["price"] = data.target
    
    X = df.iloc[: , :-1]
    y = df.iloc[: , -1]
    
    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=160)
    
    model = Sequential()
    model.add(Dense(units=128, input_dim=13, activation='relu'))
    model.add(Dense(units=64,  activation='relu'))
    model.add(Dense(units=16,  activation='relu'))
    model.add(Dense(units=1))
    model.compile(loss='mean_squared_error', optimizer='adam')
    
    model.fit(X_train,y_train,epochs=100, batch_size=100)
    pred = model.predict(X_test).flatten()

     

    728x90

    '__Data Analysis > __Machine Learning' 카테고리의 다른 글

    [Scikit-learn] 사이킷런 | 머신러닝 라이브러리  (0) 2021.06.17
    [DL] CNN | 실습2 : Flower_Recognition  (1) 2021.05.13
    [ML] sklearn / iris dataset  (0) 2021.04.14
    [ML] confusion matrix  (0) 2021.04.13
    [ML] 분류  (0) 2021.04.13

    댓글

Designed by Tistory.