딥러닝

Devin·2026년 1월 24일
post-thumbnail

딥러닝은 여러 층의 레이어(Layer)를 쌓아 데이터 속에 숨겨진 복잡한 패턴을 찾아내는 기술이다.

인공신경망의 구조

  • 입력층 (Input Layer): 우리가 넣는 데이터를 받아들인다.
  • 은닉층 (Hidden Layer): 데이터 사이의 복잡한 관계를 계산하는 '두뇌'역할이다. 이 층이 깊어질수록 '딥(Deep)'러닝이 된다.
  • 출력층 (Output Layer): 최종 결과를 내놓는다.

왜 딥러닝인가?

로지스틱 회귀는 직선으로만 판단하지만, 딥러닝은 은닉층을 통해 매우 복잡한 경계선을 그릴 수 있다.


import pandas as pd
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix

class DeepLearningPredictor:
    def __init__(self, file_path: str):
        self.df = pd.read_csv(file_path)
        self.features = ['time_input', 'total_class_count', 'is_multi_learner', 'job']
        self.target = 'completed'
        self.df = self.df[self.features + [self.target]].dropna()

    def run_neural_network(self):
        encoded_df = pd.get_dummies(self.df, columns=['job'])
        X = encoded_df.drop(columns=[self.target])
        y = encoded_df[self.target]

        X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

        model = MLPClassifier(hidden_layer_sizes=(16, 8), max_iter=1000, random_state=42)

        model.fit(X_train, y_train)
        y_pred = model.predict(X_test)

        print(f"--- 딥러닝(MLP) 분석 결과 ---")
        print(f"전체 정확도(Accuracy): {accuracy_score(y_test, y_pred): .4f}")

        print("\n[혼동 행렬(Confusion Matrix)]")
        matrix = confusion_matrix(y_test, y_pred)
        print(matrix)

        actual_positive_hits = matrix[1, 1]
        print(f"\nAI가 실제로 찾아낸 수료자 수: {actual_positive_hits}명")

# --- 실행부 ---
predictor = DeepLearningPredictor('train.csv')
predictor.run_neural_network()


MLPClassifier는 단순한 직선 형태의 분류를 넘어, 여러 층의 뉴런을 통해 데이터 간의 복잡한 비선형 관계를 학습하는 인공신경망의 기초 모델이다.

profile
AI/ML Engineer 🧑‍💻

0개의 댓글