
위 데이터를 기반으로 무기 예측 모델을 만들것이다.
import numpy as np
import pandas as pd
# 데이터 불러오기
Data_set = pd.read_csv("/content/valorantgunstats.csv", delimiter=",",skiprows = 0)
# 필요한 라이브러리 호출
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.model_selection import train_test_split
# 데이터를 X와 Y로 나누어 저장
X = Data_set.iloc[:, 1:7]
Y = Data_set.iloc[:,0]
# 확인
print(X[0:5])
print(Y[0:5])
# Y 값에 원-핫 인코딩 적용
Y = pd.get_dummies(Y)
# 확인
print(Y[0:5])
# 모델 생성
model = Sequential()
# 다중 분류 문제이므로 ReLU 함수 사용
model.add(Dense(12, input_dim=6, activation='relu'))
model.add(Dense(8, activation='relu'))
# 같은 이유로 소프트맥스 함수 사용
model.add(Dense(5, activation='softmax'))
model.summary()
# 같은 이유로 categorical_crossentropy 손실 함수 사용
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
X = X.astype(np.float32)
Y = Y.astype(np.float32)
history = model.fit(X, Y, epochs=1000, batch_size=5)
print(history)
Model: "sequential_4"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_12 (Dense) (None, 12) 84
dense_13 (Dense) (None, 8) 104
dense_14 (Dense) (None, 5) 45
=================================================================
Total params: 233
Trainable params: 233
Non-trainable params: 0
_________________________________________________________________
Epoch 1/1000
4/4 [==============================] - 2s 6ms/step - loss: 647.1111 - accuracy: 0.3125
Epoch 2/1000
4/4 [==============================] - 0s 5ms/step - loss: 607.8689 - accuracy: 0.3125
...
Epoch 999/1000
4/4 [==============================] - 0s 4ms/step - loss: 0.1113 - accuracy: 1.0000
Epoch 1000/1000
4/4 [==============================] - 0s 4ms/step - loss: 0.1196 - accuracy: 0.9375
모델이 잘 만들어졌다.