DQ 워크의 레벨 업에 필요한 경험치의 수식 모델을 구한다 (1)

개요(TL;DR)



드라퀘 워크의 레벨 업에 필요한 경험치를 소재로 파이썬의 수치 계산 라이브러리를 연습해 보았을 때의 기록입니다. (1)은 데이터를 확인하고 (2)에서 수식 모델을 산출하려고합니다.
(현재 공부중이므로 실수 등을 점점 지적해 주시면 기쁩니다.)

1. 데이터 읽기 가시화
2. 데이터를 수식 모델화(회귀 분석)

우선 데이터를 바라보는



필요한 라이브러리를 로드합니다. 이번에는 사용하지 않는 것도 있지만, 다음 번 사용하므로 읽어 둡니다.
import pandas as pd
import numpy as np
import scipy as sp

import matplotlib.pyplot as plt
import seaborn as sns

sns.set()
%matplotlib inline
%precision 3

참고 URL에서 레벨마다 필요한 경험치를 텍스트 파일에 전기한다.

zsh
% head data.csv
0
9
23
50
105
192
346
599
962
1397

곧, read_csv()다.
df = pd.read_csv('data.csv')
df.head()



왕 「오, 헤더 열이 없는 데이터를 그대로 읽어 버린다는 것은 무슨 일이다.」

read_csv() 옵션에서 header=None으로 하거나, names=[]로 컬럼명을 설정한다.
df = pd.read_csv('data.csv',names=['EXP'])
df.head()



index가 0부터 시작하기 때문에,이 상태에서는 레벨 0에서 레벨 1이 되기 위해 필요한 경험치가 9가 되어 버린다. 그래서 index에 1을 더한다.
df.index = df.index+1
df.head()



이것만으로 레벨업에 필요한 경험치는 알지만, 그 레벨에 도달하기까지 필요한 경험치를 모르기 때문에 누적합(Cumulative Sum)도 산출해 둔다.
df['CUMSUM_EXP'] = df['EXP'].cumsum()
df.head()



다음 레벨 업까지 필요한 경험치를 그래프로


plt.plot(df.index,df['EXP'])
plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.grid(True)



레벨 50 전후로, 분명히 모델이 다른 것 같은 생각이・・・.

누계에 필요한 경험치를 선 그래프로


plt.plot(df['CUMSUM_EXP'],'x')
plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.grid(True)



이쪽은 깨끗한 지수 함수의 그래프가 될 것 같다.

요약 통계량 확인



pandas의 describe()를 사용하여 요약 통계량(descriptive statistics value)을 확인해 보자.
pd.options.display.float_format = '{:.2f}'.format
df.describe()



조속히, 앞의 그래프에 분위수의 수평선을 넣어 본다.
다음 레벨에 필요한 경험치의 그래프에 누적 경험치의 분위수를 적용한다. (여기에 위화감이 있지만 결과적으로 맞다고 생각한다.)
plt.plot(df['EXP'],label = 'EXP')
plt.axhline(df['CUMSUM_EXP'].quantile(0.25), ls = "-.", color = "magenta",label="25%")
plt.axhline(df['CUMSUM_EXP'].quantile(0.50), ls = "-.", color = "green",label="50%")
plt.axhline(df['CUMSUM_EXP'].quantile(0.75), ls = "-.", color = "Orange",label="75%")

plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.legend()
plt.grid(True)



응? 75%의 선이 저런 곳에 있으므로 레벨 50에서 55까지를 뽑아 그래프화해 본다.
plt.plot(df['EXP'][49:55],label = 'EXP')
plt.axhline(df['CUMSUM_EXP'].quantile(0.75), ls = "-.", color = "Orange",label="75%")


plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.legend()
plt.grid(True)



레벨 55까지 필요한 경험치의 25%는 레벨 54에서 55가 되기까지 경험치와 거의 같다・・・・・・. 요전날 발매된 상급직은, 레벨 55로 하지 않으면 영속 스킬이 붙지 않기 때문에, 이것은 비보군요····.

계속

참고 URL



드라퀘 워크 공략 위키
htps : // 가메 rch. 코 m/dq-와 lk/엔 try/102321

좋은 웹페이지 즐겨찾기