챗 GPT가 코딩도 해준다는 사실을 알고 계셨나요? 대부분의 프로그래밍 언어에 대해 코딩을 해줍니다. 프롬프트 명령만 잘 해주면, 간단한 파이썬 머신러닝 코딩은 몇초만에 짜줍니다. 이를 활용하여 Linear Regression 머신러닝 모델을 챗GPT의 도움을 받아 만들어봤습니다.
Linear Regression 코딩해보기
예를들어 아파트의 여러가지 조건으로 아파트 가격을 예측하는 간단한 Linear Regression을 코딩해보기로 합니다. 데이터는 준공년도, 방 갯수, 화장실 갯수, 층수, 단지내 동수, 역과의 거리 그리고 가격으로 구성되어있습니다. 챗 GPT한테 이 데이터를 이용하여 아파트 가격(Price)을 예측하는 Linear Regression 모델을 코딩해달라고 요청합니다. 요청은 다음과 같은 명령어로 해주면 됩니다. "I want to program a code that predict the price of apartment with Linear Regression mode. The data looks like below. show me the code: 여기에는 데이터 복사+붙여넣기" 참고로 프롬프트창에서 Shift + Enter 를 하면 줄바꿈을 할 수 있습니다.
프롬프트 화면
챗 GPT가 짜준 코드
위와 같이 프롬프트로 코드를 짜달라고 요청하면, 아래와 같이 즉시 코드를 짜줍니다.
pandas, numpy 그리고 Scikitlearn 패키지를 활용하여 데이터를 로드하고 Linear Regression 모델을 사용하여 Price를 예측하는 간단한 머신러닝 모델 코드를 짜주었습니다. chatgpt가 짜준 전체 코드는 아래와 같습니다.
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Load the data into a pandas dataframe
data = {'year': [2011, 2019, 2014, 2021, 2013, 2022, 2002, 2001, 2018],
'num_of_room': [3, 2, 3, 3, 2, 3, 3, 3, 3],
'num_of_bath': [2, 1, 2, 2, 1, 2, 2, 2, 2],
'floor': [2, 5, 10, 7, 10, 15, 1, 16, 9],
'num_of_building': [10, 1, 20, 30, 30, 27, 15, 27, 17],
'space': [32, 18, 34, 32, 18, 35, 32, 25, 25],
'distance_to_station': [10, 5, 9, 10, 15, 6, 8, 9, 10],
'price': [980, 630, 1200, 1300, 650, 1500, 1100, 800, 900]}
df = pd.DataFrame(data)
# Split the data into training and testing sets
X = df[['year', 'num_of_room', 'num_of_bath', 'floor', 'num_of_building', 'space', 'distance_to_station']]
y = df['price']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# Scale the features
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
# Fit the linear regression model
linear_regression = LinearRegression()
linear_regression.fit(X_train, y_train)
# Predict the prices on the test data
y_pred = linear_regression.predict(X_test)
# Calculate the accuracy of the model
accuracy = linear_regression.score(X_test, y_test)
print("Accuracy:", accuracy)
Colab에 돌려본 결과
챗gpt가 짜준 코드를 구글 코랩에 붙여넣고 돌려보니 에러없이 잘 결과가 나왔습니다. 물론 데이터는 예시를 위해 제가 만들어낸 10행밖에 안되는 가짜 데이터이기 때문에 나온 Accuracy는 매우 낮습니다. 하지만 이런 방식을 활용해서 실제 데이터를 이용하면 그럴듯한 결과가 나올 것입니다. 만약 실제 데이터가 csv나 엑셀형태라면 챗gpt에게 요청할 때 데이터는 '데이터이름.csv' 파일을 로드할 것이고 해당 데이터의 헤더명은 어떤 것들이 있다 라고 명시해주면 그에 맞게 코드를 짜줍니다.
이제는 'prompt engineering(프롬프트 엔지니어링)' 이 중요해지는 시대가 왔습니다. 직접 코딩을 하는 것이 아닌, AI를 활용하여 AI에게 프롬프트(명령어)를 줌으로써 원하는 결과값을 도출하는 것이죠. 그래서 프롬프트를 얼마나 잘 다루느냐가 실력이 되는 시대가 열리게 되었습니다. Chatgpt뿐만 아니라 AI이미지 생성 툴인 Dalle2(달이) 또는 MidJourney(미드저니)도 프롬프트만 잘 이용하면 만족할만한 결과값을 얻어낼 수 있습니다. (참고 포스팅 : Chatgpt활용법, Dalle2사용후기, MidJourney사용후기)
'머신러닝' 카테고리의 다른 글
머신러닝 Accuracy, Precision, Recall, F1-Score, Confusion Matrix 이해하기 (0) | 2023.02.13 |
---|---|
머신러닝 Linear Regression 과 Gradient Descent 알고리즘 이해하기 (0) | 2023.02.12 |
머신러닝 오버피팅 (Overfitting) 이해하기, 원인과 방지 방법, 언더피팅(underfitting)과 차이점 등 (0) | 2023.02.11 |
머신러닝 Cross-Validation 이란? (0) | 2023.02.10 |
머신러닝 딥러닝 AI의 개념 및 차이점 이해하기 (0) | 2023.02.02 |
댓글