개발

파이썬: 내적을 활용한 예측 모델 만들기

Funital01 2026. 4. 16. 10:55

 

 

AI가 예측을 만들어내는 과정에서 가장 핵심이 되는 연산 중 하나가 바로 내적(dot product)입니다.

입력 데이터와 학습된 가중치를 곱하고 더하는 과정을 통해 하나의 예측값을 계산하게 되는데요!

 

내적은 선형대수학에서 두 벡터(또는 행렬)의 각 요소를 곱한 뒤에 그 결과를 모두 더하는 연산을 의미합니다.

이 연산은 여러 개의 입력 정보를 하나의 값으로 압축을 하기 때문에,

머신러닝과 딥러닝 모델의 기본 구조에서 매우 중요한 개념이 됩니다.

 

NumPy에서는 두 벡터의 내적을 담당하는 함수가 있는데요!

t1=np.array([1,2,3,4]).reshape(2,2)
t2=np.array([[3,1],[2,3]])

dot_numpy = np.dot(t1, t2) # 1. np.dot() 함수 - 가장 기본적
print(dot_numpy)

dot_operator = t1 @ t2  # 2. @ 연산자 (Python 3.5+) - 최신 트렌트
print(dot_operator)

dot_method = t1.dot(t2)	# 3. .dot() 메소드 - 비추천   
print(dot_method)

 

먼저, 가장 기본적인 numpy에서 제공하는 dot() 함수가 있고, np.dot()으로 사용이 가능해요.

Python 3.5 이후에는 @ 연산자를 활용해 보다 직관적으로 표현할 수도 있습니다.

 

또한 배열.dot() 메서드도 사용할 수 있지만,

가독성과 일관성 측면에서는 np.dot()이나 @ 연산자를 사용하는 것이 권장되고 있어요.

 

이러한 내적 연산을 가지고 가중합(weighted sum)을 계산하는 데 활용이 됩니다.

가중합이란 여러 입력 데이터에 각각의 가중치를 곱해서 모두 더하는 방식인데요,

AI가 다양한 정보를 모아서 하나의 예측값을 만드는 가장 기본적인 방법이라고 할 수 있어요.

이 값에 추가적으로 편향(bias)을 더해서 최종적인 예측값을 만들어낼 수 있습니다.

import numpy as np

# 1. 데이터: [사용 기간(년), 일일 충전 횟수, 평균 화면 밝기(%)]
phone_data = np.array([2.5, 1.5, 80])
weights = np.array([10, 5, 0.2])  # 각 요소가 배터리 노후화에 끼치는 영향
bias = 5 # 기본 노후도

# 2. 계산 (가중합 + 편향)
score = np.dot(phone_data, weights) + bias

# 3. 결과 출력
print(f"배터리 노후 점수: {score:.1f}점")

if score < 40:
    print("상태: 양호 (계속 사용 가능)")
elif score < 70:
    print("상태: 보통 (최적화 필요)")
else:
    print("상태: 교체 권장 (서비스 센터 방문)")

 

예를 들어, 스마트폰 배터리 수명 예측 모델을 다음과 같이 작성할 수 있어요.

사용 기간, 충전 횟수, 화면 밝기와 같은 입력 데이터에 각각의 가중치를 곱한 뒤 내적을 통해 가중합을 구하고,

여기에 편향을 더하면 예측값을 얻을 수 있었습니다.

이 점수를 기준으로 해서 상태를 판단하는 방식으로 간단한 예측 모델을 구현해 볼 수 있었어요🧐

 

 

어떤 데이터를 입력으로 사용할지, 그리고 각 데이터에 어떤 가중치를 부여할지를 잘 설계하는 것이 중요한것 같아요.

내적이라는 거 자체는 단순 계산이지만, 어떤 값들을 조합하느냐에 따라서

모델의 성능이 크게 달라지기 때문에, 이러한 부분을 잘 이해하고 활용해야겠습니다!🙂