[PYTHON] Finden Sie ein mathematisches Modell des Erfahrungswerts, der erforderlich ist, um den DQ-Spaziergang zu verbessern (2).

Übersicht (TL; DR)

Da wir die Daten beim letzten Mal überprüft haben, besteht der nächste Schritt darin, das mathematische Modell zu berechnen. (Ich studiere gerade, daher würde ich mich freuen, wenn Sie auf Fehler hinweisen könnten.)

Berechnen Sie ein mathematisches Modell der Erfahrungswerte, die zum Aufsteigen des DQ-Laufs erforderlich sind (1)

Regressionsanalyse

Importieren Sie zunächst die erforderliche Bibliotheksgruppe

import pandas as pd
import numpy as np
import scipy as sp

import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import linear_model
sns.set()

%matplotlib inline
%precision 3

Importieren Sie die Daten mit read_csv ().

df = pd.read_csv('data.csv',names=['EXP'])
df['CUMSUM_EXP'] = df['EXP'].cumsum()
df.index = df.index + 1
df.head()
Screen Shot 2020-01-31 at 21.49.26.png

Geben Sie die Daten an das lineare_Modell von sklearn weiter

Zuallererst der Erfahrungswert, der für das nächste Level erforderlich ist

reg = linear_model.LinearRegression()
 
X = df.index
Y = df['EXP']
#Erstellen Sie ein Vorhersagemodell
reg.fit(X, Y)
#Regressionskoeffizienten
print(reg.coef_)
#Sektion
print(reg.intercept_)
#R2 (Entscheidungskoeffizient)
print(reg.score(X, Y))

*** Ich erhalte eine Fehlermeldung über das Ausführungsergebnis von jupyter !! ***

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-54-69fa63dab1be> in <module>
      6 Y = df['EXP']
      7 #Erstellen Sie ein Vorhersagemodell
----> 8 reg.fit(X, Y)
      9 #Regressionskoeffizienten
     10 print(reg.coef_)

/usr/local/lib/python3.7/site-packages/sklearn/linear_model/base.py in fit(self, X, y, sample_weight)
    461         n_jobs_ = self.n_jobs
    462         X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],
--> 463                          y_numeric=True, multi_output=True)
    464 
    465         if sample_weight is not None and np.atleast_1d(sample_weight).ndim > 1:

/usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)
    717                     ensure_min_features=ensure_min_features,
    718                     warn_on_dtype=warn_on_dtype,
--> 719                     estimator=estimator)
    720     if multi_output:
    721         y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,

/usr/local/lib/python3.7/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
    519                     "Reshape your data either using array.reshape(-1, 1) if "
    520                     "your data has a single feature or array.reshape(1, -1) "
--> 521                     "if it contains a single sample.".format(array))
    522 
    523         # in the future np.flexible dtypes will be handled like object dtypes

ValueError: Expected 2D array, got 1D array instead:
array=[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
 49 50 51 52 53 54 55].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

Anscheinend will X ein 2D-Array. In der sklearn-Referenz heißt es natürlich auch wie folgt. Screen Shot 2020-01-31 at 21.57.12.png

Obwohl es etwas rau ist, werde ich ein zweidimensionales Array vorbereiten.

X = []
for i in range(1,56):
    X.append([i])

Es ist Zeit

reg = linear_model.LinearRegression()
 
Y = df['EXP']
#Erstellen Sie ein Vorhersagemodell
reg.fit(X, Y)
#Regressionskoeffizienten
print(reg.coef_)
#Sektion
print(reg.intercept_)
#R2 (Entscheidungskoeffizient)
print(reg.score(X, Y))
Screen Shot 2020-01-31 at 22.04.06.png

*** Yoshika hat die Regressionsanalyse erfolgreich abgeschlossen! *** *** (Die Formel wird im Jupyter Markdown separat geschrieben.)

Visualisieren Sie, als ob Sie atmen.

plt.plot(df.index,df['EXP'],label="EXP")
plt.plot(X,reg.predict(X),label="LinearRegression")
plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.grid(True)

image.png

Das ist nicht gut ... Sicherlich ist R2 0,377, also macht es keinen Sinn. (Es ist gut, das ist nur Lernen.)

Als nächstes folgt die kumulative Erfahrung, die erforderlich ist, um ein bestimmtes Niveau zu erreichen

reg2 = linear_model.LinearRegression()
 
Y2 = df['CUMSUM_EXP']
#Erstellen Sie ein Vorhersagemodell
reg2.fit(X, Y2)
#Regressionskoeffizienten
print(reg2.coef_)
#Sektion(Error)
print(reg2.intercept_)
#R2 (Entscheidungskoeffizient)
print(reg2.score(X, Y2))
Screen Shot 2020-01-31 at 22.03.36.png

Visualisiere, um zu atmen

image.png

Das ist auch völlig nutzlos ... Es ist wahr, dass R2 0,575 ist, also macht es keinen Sinn, wenn auch besser als zuvor. (Es ist gut, das ist nur Lernen.)

Mehrdimensional

Es ist klar, dass die lineare Gleichung nicht gut ist, also machen wir sie mehrdimensional.

Zweidimensional

Erstellen Sie zunächst eine erklärende Variable

D1 = []
D2 = []
for i in range(1,56):
    D1.append(i)
    D2.append(i**2)
df_x = pd.DataFrame({"D1":D1,"D2":D2})
df_x.head()
Screen Shot 2020-01-31 at 22.22.33.png

Geben Sie die Daten an das lineare_Modell von sklearn weiter

Zuallererst der Erfahrungswert, der für das nächste Level erforderlich ist

reg3 = linear_model.LinearRegression()
X3 =df_x
Y3 = df['EXP']
#Erstellen Sie ein Vorhersagemodell
reg3.fit(X3, Y3)
#Regressionskoeffizienten
print(reg3.coef_)
#Sektion(Error)
print(reg3.intercept_)
#R2 (Entscheidungskoeffizient)
print(reg3.score(X3, Y3))
Screen Shot 2020-01-31 at 22.25.28.png

Visualisiere, um zu atmen

plt.plot(df.index,df['EXP'],label="EXP")
plt.plot(X,reg3.predict(X3),label="LinearRegression")
plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.grid(True)

image.png

R2 ist 0,644, was besser als zuvor ist, aber es ist schwer zu sagen, dass es immer noch passt.

Als nächstes folgt die kumulative Erfahrung, die erforderlich ist, um ein bestimmtes Niveau zu erreichen

reg4 = linear_model.LinearRegression()
X4 =df_x
Y4 = df['CUMSUM_EXP']
#Erstellen Sie ein Vorhersagemodell
reg4.fit(X4, Y4)
#Regressionskoeffizienten
print(reg4.coef_)
#Sektion(Error)
print(reg4.intercept_)
#R2 (Entscheidungskoeffizient)
print(reg4.score(X4, Y4))
Screen Shot 2020-01-31 at 22.28.27.png

Visualisiere, um zu atmen

plt.plot(df.index,df['CUMSUM_EXP'],label="CUMSUM_EXP")
plt.plot(X,reg4.predict(X4),label="LinearRegression")
plt.xlabel('LEVEL')
plt.ylabel('EXP')
plt.grid(True)

image.png

R2 ist 0,860, also sieht es ziemlich gut aus, nicht wahr?

Nach dreidimensional

Das Programm ist das gleiche, daher wird nur das Diagramm angezeigt.

3D

image.png

4 Dimensionen

image.png

Die kumulative hat ziemlich gut gepasst. R2 ist auch bis zu 0,9733.

5 Dimensionen

image.png

Ist es nicht fair zu sagen, dass beide fast fit sind? R2 erfordert 0,961 Erfahrung und kumulative Erfahrung 0,987, um das nächste Level zu erreichen.

Und zur Legende

Berechnen wir den erforderlichen kumulativen Erfahrungswert, wenn die aktuelle maximale Stufe 55 wie im Original auf 99 steigt.

Die berechnete Modellformel finden Sie hier Screen Shot 2020-01-31 at 23.10.47.png

Wenn Sie sich das vorstellen

image.png

** Sie benötigen fast 140 Millionen Erfahrungen (1.392.549.526), um Level 99 zu erreichen. (Es ist eine Vorhersage, eine Vorhersage.) ** Übrigens beträgt der Erfahrungswert, der erforderlich ist, um Stufe 55 zu erreichen, 3.441.626 (ungefähr 3,5 Millionen), daher ist es notwendig, Stufe 55 404 Mal zu erreichen.

66.311 für Metall-Hoimin, 132.623 für Streumetall, 904.252 für Metallschleim. Hmmm, wir müssen die Zahlen überschreiten, die der WWF wahrscheinlich bewegen wird.

Game Over

Recommended Posts

Finden Sie ein mathematisches Modell des Erfahrungswerts, der erforderlich ist, um den DQ-Spaziergang zu verbessern (2).
Finden Sie ein mathematisches Modell der Erfahrungswerte, die erforderlich sind, um den DQ-Spaziergang zu verbessern (1).
Summe der Variablen in einem mathematischen Modell
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
Ich habe versucht, die Anzahl der im Inland infizierten Menschen der neuen Korona mit einem mathematischen Modell vorherzusagen