[PYTHON] Kann künstliche Intelligenz den Preis der Yugioh-Karte vorhersagen?

"Die Karte vorhergesagt"

Überblick

Vorwort

In letzter Zeit ist Yugioh plötzlich ein Boom um mich herum geworden. In der Zwischenzeit gingen die Leute um mich herum in einen Kartenladen und kauften teure Karten. Ich wurde gefragt: "Warum ist der Preis einer Karte so teuer?" Und "Ist eine starke Karte teuer?" „Wie wird der Kartenpreis bestimmt?" Wenn er nur anhand der Stärke der Karte bewertet werden kann, begann ich zu denken: "Ist es nicht möglich, den Kartenpreis nur anhand der Karteninformationen vorherzusagen?" Wenn ja, kann dies durch maschinelles Lernen vorhergesagt werden? damit

** Kann künstliche Intelligenz den Preis der Yugioh-Karte vorhersagen? ** ** **

Vorbereitungen

Es ist einfach, nur Karteninformationen zu sammeln, aber kürzlich verwendete Karten. Es ist schwierig, wenn es darum geht. Ich denke. Daher verweise ich auf die Seite "Kiriburo!". Wir sammeln hauptsächlich Karteninformationen aus den neuesten Deckrezepten auf dieser Website. Diesmal bezog ich mich

Ich habe das Deck-Rezept von diesen 7 URLs erhalten. Das Scraping-Skript sieht folgendermaßen aus.

yugioh.py


#coding:utf-8

from pyquery import PyQuery as pq
import pandas as pd
import time
import os.path

def extract_card(url):
    price_df = pd.DataFrame(
        extrat_card_price(url+"&Price=1"),
        columns=[
            "name",
            "price",
            "shop_num"
        ]
    )

    detail_df = pd.DataFrame(
        extract_card_detail(url),
        columns=[
        "num",
        "name",
        "limit",
        "kind",
        "rarity", "variety", "race",
        "attack",
        "defense"
    ])

    return pd.merge(detail_df,price_df,left_on="name",right_on="name")


def extract_card_detail(url):
    for table_tag in pq(url).find("table").eq(2):
        for tr_tag in pq(table_tag).find("tr"):
            td_tag = pq(tr_tag).find("td")
            if td_tag.eq(4).attr["colspan"] is None:
                record = pq(td_tag)
                name=record.eq(2).find("a").eq(0).text().strip()

                if len(name) != 0:
                    if record.eq(7).text()=="?" or record.eq(8).text()=="?":
                        continue

                    num = int(record.eq(0).text())
                    limit = record.eq(1).text()
                    limit = "Gewöhnlich" if len(limit)==0 else limit
                    kind = record.eq(3).text()
                    rarity = int(record.eq(4).text())
                    variety = record.eq(5).text()
                    race = record.eq(6).text()
                    attack = int(record.eq(7).text())
                    defense = int(record.eq(8).text())
                    
                    yield num,name,limit,kind,rarity,variety,race,attack,defense

def extrat_card_price(url):
    for table_tag in pq(url).find("table").eq(3):
        for tr_tag in pq(table_tag).find("tr"):
            td_tag = pq(tr_tag).find("td")

            if td_tag.eq(7).text().isdigit():
                record = pq(td_tag)
                name = record.eq(2).text().strip()
                price = int("".join(filter(unicode.isdigit,record.eq(6).text())))
                shop_num = int(record.eq(7).text())

                yield name,price,shop_num


def dumpData(fulldata_filename):
    entry_points = [
        "http://yugioh-resaler.com/2017/03/20/post-15584/",
        "http://www.yugioh-resaler.com/2017/02/16/post-13395/",
        "http://www.yugioh-resaler.com/2017/02/16/post-13502/",
        "http://www.yugioh-resaler.com/2017/02/27/post-14493/",
        "http://www.yugioh-resaler.com/2017/02/15/post-13443/",
        "http://www.yugioh-resaler.com/2017/02/16/post-13514/",
        "http://www.yugioh-resaler.com/2017/02/15/post-13399/"
    ]

    stats = dict()
    history = set()
    all_df = None

    for entry_point in entry_points:
        print entry_point
        dom = pq(entry_point)

        count = 0
        for a_tag in  dom.find("a"):
            link_url = a_tag.get("href")

            #Nur Deck-URL extrahieren
            if "https://ocg.xpg.jp/deck/deck.fcgi" in link_url:
                filename = "data_%s" % link_url.split("=")[-1]

                if filename in history:
                    print "skip deck"
                    continue
                else:
                    history.add(filename)

                if os.path.exists(filename):
                    print "filename:" + filename + " read:" + link_url
                    df = pd.read_pickle(filename)
                else:
                    print "filename:" + filename + " write:" + link_url 
                    df = extract_card(link_url)
                    df.to_pickle(filename)
                    time.sleep(1)

                print df
                del df["num"] 

                for idx,row in df.iterrows():
                    name = row["name"]
                    if stats.has_key(name):
                        stats[name] += 1
                    else:
                        stats[name] = 1

                if all_df is None:
                    all_df = df
                else:
                    all_df = pd.concat([all_df,df]).drop_duplicates()

                print len(all_df)
                print entry_point

                count += 1

    hist_df = pd.DataFrame(
        stats.items(),
        columns=[
            "name",
            "hist"
        ]
    )

    return pd.merge(all_df,hist_df,left_on="name",right_on="name")

Grundsätzlich wird das Datenformat von Pandas geroutet. Außerdem benutze ich eine Bibliothek namens Pyquery zum Scraping. Bis jetzt habe ich BeautifulSoup verwendet, aber es scheint, dass auch Pyquery verwendet wird, also habe ich versucht, es zu verwenden. Es scheint, dass "Pyquery wie JQuery abgekratzt werden kann", aber ich habe JQuery nie verwendet. Pyquery selbst ist jedoch einfach zu bedienen. Der Rest ist Gurke, um den Server nicht zu belasten. Auch dieses Mal achten wir nur auf ** Monsterkarten **. Der Grund ist, dass es schwierig ist, ein Modell herzustellen, das gleichzeitig mit Magie, Fallen und Monsterkarten umgeht. Auch Monster mit Offensiv- und Defensivkraft sind ausgeschlossen. Dies ist auch der gleiche Grund, weil es schwierig ist, ein Modell zu erstellen. Infolge des Schabens

Daten wurden gesammelt.

** "Ich habe Karteninformationen gesammelt" **

Gesammelte Daten

** Karteninformationen (Basic) **

--Niveau

Sehr gewöhnliche Karteninformationen. In der Realität wurden jedoch einige Anpassungen vorgenommen. Beispielsweise hat "Attribut" das Format von OneHotVector, und wenn es sich um ein dunkles Attribut handelt, ist is_Dark = 1, Wenn es sich um ein Lichtattribut handelt, wird es als is_Light = 1 ausgedrückt. Gleiches gilt für die Monstertypen mit is_Xyz = 1 für Xyz und is_Fusion für Fusion. Darüber hinaus wird der Effekt nicht berücksichtigt, da er schwer auszudrücken ist.

** Marktinformationen (Markt) **

Ich dachte, es sei unmöglich, "den Preis anhand der Karteninformationen vorherzusagen", die ich mir zuerst ausgedacht hatte. Ich dachte, der Grund sei, dass "der Preis einer Karte nicht von der Stärke der Karte abhängt. Er wird nur durch das Gleichgewicht zwischen Angebot und Nachfrage ausgedrückt." Dies ist der sogenannte wirtschaftliche Gesichtspunkt. Daher stellten wir die Hypothese auf, dass "Nachfrage = Anzahl der übernommenen Decks" und "Angebot = Anzahl der Filialen". Daher dachte ich, dass "Karten mit viel Nachfrage (Anzahl der angenommenen Decks) hoch sind" und "Karten mit viel Angebot (Anzahl der Geschäfte) billig sind".

** Deck Information (Deck) **

--Bedingte Wahrscheinlichkeit

Dies ist die Natur, die auf der Hypothese basiert, dass "Karten, die häufig in einem bestimmten Muster von Decks verwendet werden, teuer sind?" Wenn Sie beispielsweise den "Blue Eyes Ultimate Dragon" verwenden möchten, benötigen Sie drei "Blue Eyes White Dragons". Auf diese Weise benötigen Sie eine Karte namens B, um eine Karte namens A zu verwenden. Wenn daher der Preis einer starken Karte A hoch ist, ist auch der Preis der dafür erforderlichen Karte B hoch. Ich habe es übernommen, um den Inhalt auszudrücken. A hier ausgedrückt ist "der ultimative blauäugige Drache" und B ist "der blauäugige weiße Drache". Ich werde anhand eines einfachen Beispiels erklären, wie man es berechnet. Betrachten Sie die folgenden Decks A und B.

Deck A: "Blauäugiger weißer Drache" "Blauäugiger ultimativer Drache" "Heiligtümer des Drachen" Deck B: "Blauäugiger weißer Drache" "Blauäugiger ultimativer Drache" "Ansturm"

Dabei betrachten wir alle Kartenpaare und zählen sie.

Blauäugiger weißer Drache Blauäugiger ultimativer Drache Drachenschatz Eilen
Blauäugiger weißer Drache 0 2 1 1
Blauäugiger ultimativer Drache 2 0 1 1
Drachenschatz 1 1 0 0
Eilen 1 1 0 0

Zum Beispiel befindet sich das Paar "Blue-eyed White Dragon" und "Blue-eyed Ultimate Dragon" sowohl auf Deck A als auch auf Deck B, sodass der Wert "2" eingegeben wird. Auf der anderen Seite existieren "Blue-eyed White Dragon" und "Rush" nur in Deck B, also sind sie 1. Dieser Wert wird schließlich auf die Spalte normiert.

Blauäugiger weißer Drache Blauäugiger ultimativer Drache Drachenschatz Eilen
Blauäugiger weißer Drache 0.00 0.50 0.25 0.25
Blauäugiger ultimativer Drache 0.50 0.00 0.25 0.25
Drachenschatz 0.50 0.50 0.00 0.00
Eilen 0.50 0.50 0.00 0.00

Diese Matrix wird als Wert verwendet. Dies ist die sogenannte bedingte Wahrscheinlichkeit.

Verifikationsverfahren

Die wichtigsten verwendeten Bibliotheken sind Pandas und Scikit-Learn. Intern benutze ich von Zeit zu Zeit auch Numpy.

Ich werde nicht zu sehr ins Detail gehen, aber ich habe die Lasso-Regression als Methode des maschinellen Lernens verwendet. Der Grund ist, dass die Leistung von Lasso und Ridge gut war, als die Regressionsanalyse mit Linear, Ridge und Lasso durchgeführt wurde. Außerdem wurde Lasso übernommen, weil die Erklärung der Variablen leicht zu verstehen war.

Für Deckinformationen wird die oben erwähnte Matrix nicht so verwendet, wie sie ist. Es wird durch SVD auf 50 Dimensionen reduziert. Der Grund dafür ist, dass es zu viele erklärende Variablen gibt. Wenn die Dimensionsreduzierung tatsächlich mit SVD durchgeführt wird, überschreitet die Summe der erklärten_Varianzverhältnisse in 50 Dimensionen 90%, sodass dieser Wert verwendet wurde.

Das Modell selbst wird einer Gegenprüfung von 3 Abteilungen unterzogen. Hyperparameter werden in der [Lasso-Seite] von scikit-learn (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso), Alpha, beschrieben Der Parameter von wird in Schritten von 0,1 von 0,1 auf 1,0 eingestellt, und mit Gridsearch CV wird gesucht, ob der Normalisierungsparameter True oder False ist. Unter diesen wird das Modell mit dem besten R ^ 2 -Koeffizienten ausgewählt. Danach werden zur Verifizierung alle Trainingsdaten auf das Modell mit dem besten R ^ 2-Koeffizienten angewendet und die anschließende Verifizierung durchgeführt.

Prüfergebnis

Dieses Mal haben wir drei Arten der Überprüfung durchgeführt. Obwohl wir es hier als "Ein-Element-Modell" bezeichnen, kehren wir zurück, indem wir nur eine der drei Arten von "Karteninformationen (Basis)", "Marktinformationen (Markt)" und "Deckinformationen (Deck)" auswählen. .. Das "Zwei-Elemente-Modell" ist ein Modell, bei dem zwei aus drei Arten von Elementen extrahiert und kombiniert werden, z. B. "Karteninformationen (Basis)" + "Marktinformationen (Markt)". Schließlich überprüfen wir mit einem "Drei-Elemente-Modell", das alle verwendet.

1 Identitätsmodell

Identität R^2 Fehlerquote unter 50 Yen(%) Fehlerquote unter 100 Yen(%) Fehlerquote unter 150 Yen(%) Fehlerquote unter 200 Yen(%)
Basic 0.00782 9.09 20.75 34.78 51.19
Market 0.03645 11.46 23.72 36.96 51.78
Deck -0.03684 8.89 16.80 27.47 38.34

Aus diesem Ergebnis sind drei Dinge ersichtlich. Alle Modelle haben einen niedrigen R ^ 2. Es scheint nicht sehr gut zu passen. Das zweite war, dass die Genauigkeit gut war, wenn der Preis nur unter Verwendung der Marktinformationen (Marktinformationen) vorhergesagt wurde. darüber. R ^ 2 ist ungefähr 0,03, aber die Tatsache, dass es 11% der Karten gibt, die mit einem Fehler von weniger als 50 Yen vorhergesagt werden können, ist ungefähr 2% höher als bei Auswahl anderer Qualitäten, so dass es einen gewissen Einfluss auf die Regression zu geben scheint. ist. Drittens ist das von Deck Information (Deck) zurückgegebene Modell ein Modell mit einem großen Fehler. darüber. Der R ^ 2 -Wert ist der niedrigste. Darüber hinaus ist das Fehlerverhältnis von weniger als 50 Yen fast das gleiche wie bei Basic, unterscheidet sich jedoch um 4% bis 10% oder mehr, sodass der Fehler ziemlich groß zu sein scheint.

Aus diesem Inhalt ist ersichtlich, dass die wichtigen Faktoren für die Preisvorhersage Marktinformationen> Karteninformationen> Deckinformationen in dieser Reihenfolge sind.

2 Identitätsmodell

Identität R^2 Fehlerquote unter 50 Yen(%) Fehlerquote unter 100 Yen(%) Fehlerquote unter 150 Yen(%) Fehlerquote unter 200 Yen(%)
Basic + Market 0.08830 12.85 28.46 44.27 58.89
Basic + Deck -0.00915 9.49 20.55 35.38 55.53
Market + Deck 0.03582 12.45 24.90 40.12 54.55

Es gibt zwei Dinge, die von diesem Modell gesehen werden können. R ^ 2 der Karteninformationen (Basic) + Marktinformationen (Market) beträgt ungefähr 0,08, was am höchsten ist. Auch wenn man bedenkt, dass der R ^ 2 des 1-Element-Modellmarktes 0,03 betrug, hat er signifikant zugenommen. Darüber hinaus weisen alle Verifizierungselemente des 2-Element-Modells eine höhere Vorhersagegenauigkeit auf. Das zweite, was zu verstehen ist, ist, dass die Leistung des Modells einschließlich "Deckinformationen" nicht gut ist. darüber. Beim Vergleich von "Market + Deck" und "Basic + Deck" wird für alle Bewertungspunkte "Basic + Market"> "Market + Deck" eingestellt. Dies ist die gleiche Bewertung wie beim Ein-Element-Modell, und hier kann abgelesen werden, dass Karteninformationen> Deckinformationen für die Vorhersage wichtig sind. Aber es stellt sich als interessant heraus. "Fehlerquote unter 150 Yen" und "Fehlerquote unter 200 Yen" sind nicht so schlecht. darüber. Zwischen Basic und Decks "Verhältnis von weniger als 150 Yen Fehler" im Ein-Element-Modell bestand eine Lücke von etwa 7%. Vom Zwei-Elemente-Modell Die Lücke zwischen "Basic + Market" und "Market + Deck" "Verhältnis von weniger als 150 Yen Fehler" beträgt etwa 4%. Besonders bemerkenswert ist die Lücke des "Verhältnisses von weniger als 200 Yen Fehler", die im 1-Element-Modell 13% und im 2-Element-Modell 4% betrug. Daher scheinen die Deckinformationen dazu beizutragen, den Fehler insgesamt zu reduzieren.

3 Identitätsmodell

Identität R^2 Fehlerquote unter 50 Yen(%) Fehlerquote unter 100 Yen(%) Fehlerquote unter 150 Yen(%) Fehlerquote unter 200 Yen(%)
Basic + Market + Deck 0.07645 13.83 27.47 44.47 58.30

Schließlich gibt es ein Drei-Elemente-Modell. Was zu beachten ist, ist das "Verhältnis (%) des Fehlers von weniger als 50 Yen". Dies ist etwa 1% besser als das Modell "Basic + Market". Da die Gesamtzahl der Karten ungefähr 500 beträgt, scheinen sich ungefähr 5 verbessert zu haben. Daraus können Deckinformationen zur Verbesserung der Vorhersagegenauigkeit beitragen. darüber.

image

Koeffizientenerhebung

Als nächstes untersuchte ich den Koeffizienten bei der Rückkehr zu Lasso. Der Wert verwendet den des Drei-Elemente-Modells. Der Koeffizient, der mit svd beginnt, ist der Wert, der durch Reduzieren der oben genannten Deckinformationen durch SVD erhalten wird. Obwohl es ein Element der Karte ist, scheint es den Preis erheblich zu beeinflussen, ob es sich um Xyz handelt oder nicht. Es scheint auch, dass die Erkenntnis, dass "Vanillekarten billig sind", natürlich richtig ist. Andererseits ist es ein wenig zweifelhaft, dass Pendel einen negativen Koeffizienten hat. Außerdem sind "Karten mit viel Nachfrage (Anzahl der angenommenen Decks) hoch." "Karten mit viel Angebot (Anzahl der Geschäfte) sind billig." Die erste Hypothese scheint allgemein richtig zu sein. Der Wert des Koeffizienten für die Anzahl der verwendeten Decks ist positiv und die Anzahl der Geschäfte, die damit umgehen, ist negativ. Als Rasse scheinen der Drachenstamm und der Seedrachenstamm tendenziell teuer zu sein. Eine andere überraschende Sache ist, dass der Koeffizient für Attribute nicht 0 ist. darüber. Ich habe es nicht analysiert, aber sind die Eigenschaften von teuren und einfach zu bedienenden Monstern nicht voreingenommen? Es scheint, dass. Ich habe mir die Anzahl der Decks nicht im Detail angesehen, aber selbst wenn ich zurückgehe, einschließlich 50 Elementen, verwende ich tatsächlich nur 8 Elemente. Ich fühlte, dass. Um hier ein paar Worte zu sagen, ich denke, es gibt einige Attribute und Rassen, die es nicht gibt. Der Grund ist, dass die ursprünglich durch Schaben erhaltenen Karten voreingenommen sind und die Liste der Attribute und Rassen aus diesen Daten extrahiert wird.

Element Wert des Koeffizienten
Niveau 0.000
Offensivkraft 0.000
Verteidigungskraft 0.006
Vanille -37.348
bewirken 0.000
Verschmelzung 0.000
Tuner 0.000
Synchronisieren 0.000
Xyz 139.618
Pendel -2.289
Sonderbeschwörung 0.000
umkehren 0.000
Union 0.000
Dual 0.000
Zeremonie 0.000
Verbot 0.000
Grenzen 0.000
Keine Begrenzung 0.000
Pflanzenfamilie 0.000
Vögel und Bestien 0.000
Flammenstamm 0.000
Maschinenfamilie 0.000
Kriegerstamm 0.000
Teufel 0.000
Dinosaurier 0.000
Hellseher 0.000
Aquarium 0.000
Beast Warrior Stamm -2.044
Engel 3.232
Zauberer 0.000
Rock Stamm 0.000
Andet Stamm 0.000
Reptilien 0.000
Drachenstamm 139.839
Fischfamilie 0.000
Tierstamm 0.000
Seedrache 190.029
Phantomdrache 0.000
Donnerstamm 0.000
Insekten -32.625
Attribut Dunkelheit 0.000
Lichtattribut 62.002
Windattribut 12.426
Flammenattribut 0.000
Erdattribut -8.750
Wasserattribut 0.000
Anzahl der Geschäfte -4.901
Anzahl der angenommenen Decks 2.901
svd_0 0.000
svd_1 0.000
svd_2 0.000
svd_3 136.713
svd_4 0.000
svd_5 0.000
svd_6 0.000
svd_7 0.000
svd_8 0.000
svd_9 0.000
svd_10 81.461
svd_11 306.910
svd_12 0.000
svd_13 286.363
svd_14 0.000
svd_15 0.000
svd_16 0.000
svd_17 406.618
svd_18 0.000
svd_19 0.000
svd_20 0.000
svd_21 0.000
svd_22 0.000
svd_23 0.000
svd_24 971.848
svd_25 0.000
svd_26 565.228
svd_27 0.000
svd_28 0.000
svd_29 0.000
svd_30 0.000
svd_31 0.000
svd_32 0.000
svd_33 0.000
svd_34 0.000
svd_35 0.000
svd_36 0.000
svd_37 0.000
svd_38 0.000
svd_39 0.000
svd_40 0.000
svd_41 0.000
svd_42 0.000
svd_43 0.000
svd_44 0.000
svd_45 0.000
svd_46 0.000
svd_47 385.641
svd_48 0.000
svd_49 0.000

War die Deckinformation effektiv?

Waren die Deckinformationen in der Geschichte bisher wirksam? Ich denke, es gab eine Frage. In den ursprünglichen Plan habe ich diese Informationen aus der Hypothese aufgenommen, dass "Karten, die häufig in Decks mit einem bestimmten Muster verwendet werden, teuer sind?" Ich möchte einige interessante Daten vorstellen.

Gael Deck

Es ist ein Deck, das um Monster kämpft, die Frösche genannt werden, aber ich denke, dies ist ein Beispiel für die Wirkung von Deckinformationen. Es ist ersichtlich, dass der Fehler kleiner ist, wenn die Deckinformationen hinzugefügt werden, als das Ergebnis, das nur durch die Karteninformationen und die Marktinformationen vorhergesagt wird. Darüber hinaus gibt es eine interessante Tatsache, dass sowohl positive als auch negative Daten verfügbar sind. Zum Beispiel wurde erwartet, dass der Dämonenfrosch 136 Yen beträgt, aber durch Hinzufügen von Deckinformationen sind es 171 Yen. Durch Hinzufügen von Deckinformationen steigt der erwartete Preis und nähert sich dem ursprünglichen Preis. Wenn Sie sich dagegen den Mochi-Frosch ansehen, sinkt der Preis und nähert sich dem ursprünglichen Preis, indem Sie Deckinformationen hinzufügen. Auf diese Weise schwankt der geschätzte Preis in Abhängigkeit von den Deckinformationen, und es scheint, dass die Deckinformationen wirksam sind.

Kartenname Preis Basic+Market Basic+Market+Deck
Dämonenfrosch 197 136.98 171.25
Stilvoller Frosch 444 202.34 229.41
Machi Frosch 319 228.81 253.91
Mochi Frosch 162 253.00 230.94

Mondscheindeck

Zitat

Ich vergleiche die Preise von Monstern, die Mondlichter genannt werden, was kein sehr gutes Ergebnis ist. In gewissem Sinne ist es wie erwartet, aber es ist im Grunde oben. Insbesondere die steigende Breite der mondlichtschwarzen Schafe liegt nahe bei 50 Yen, was weit von den ursprünglichen 35 Yen entfernt ist. Vielleicht ist der Preis wegen des Mondlichtthemas gestiegen. Das sage ich voraus.

Kartenname Preis Basic+Market Basic+Market+Deck
Mondscheintiger 29 149.88 179.03
Mondschein schwarze Schafe 35 87.14 134.17
Mondschein Mai Panther Prinzessin 165 90.09 114.96
Mondschein tanzen Löwenprinzessin 95 92.06 116.14
Mondschein Aya Hina 271 123.68 148.71
Mondlichtblaue Katze 39 132.29 156.05
Mondscheinwolf 28 158.15 185.12

Super häufige Kartengruppe

Dies ist eine Gruppe von Karten, die in 80% bis 90% oder mehr der Decks verwendet werden. Wie Sie daraus sehen können, wird der Preis durch Hinzufügen von Deckinformationen gesenkt. Der Grund ist einfach: Es hängt nicht von einem bestimmten Deck ab, verliert also seine Funktionen und es gibt keine Preiserhöhung aufgrund von Deckinformationen. Daher denke ich, dass der Preis gefallen ist. Wie Sie dem Vergleich der Koeffizienten entnehmen können, tragen die Deckinformationen im Wesentlichen zur Preiserhöhung bei. Ohne diesen Effekt ist der Preis daher niedriger als ohne Decksinformationen.

Kartenname Anzahl der angenommenen Decks Preis Basic+Market Basic+Market+Deck
Proliferating G. 283 791 954.94 948.52
Ashyu Urara 265 1845 1039.92 984.87
Geisterkaninchen 238 1546 1032.86 966.43

Überlegungen zu unvorhersehbaren Karten

Hochpreisige Karte

Diesmal konnte ich die teure Karte nicht vorhersagen. Nachfolgend finden Sie verschiedene Preisstatistiken. Es gibt zwei Dinge zu beachten, den Durchschnitt und 50%. Der Durchschnitt liegt bei 312 Yen, während 50% bei 151 Yen liegen. Tatsächlich wird es von einer kleinen Anzahl hochpreisiger Karten gezogen und der Gesamtdurchschnitt steigt. Wie Sie sehen, ist die Anzahl der hochpreisigen Karten überwiegend gering und der Preis selbst schwer vorherzusagen.

Artikel Wert
durchschnittlich 312.31
Verteilt 413.44
Minimum 23.00
25% 48.25
50% 151.50
75% 400.75
max 3547.00

Karten mit unterschiedlichen Preisen

Tatsächlich kann der Preis der Karte "Blue-eyed White Dragon" nicht vorhergesagt werden.

Kartenname Preis 3 Prognostizierter Wert des Identitätsmodells
Blauäugiger weißer Drache 142 587.06

Sicherlich gibt es eine Lücke zwischen dem vorhergesagten Wert und dem Preis. Ich war neugierig und untersuchte den Preis von "Blue-eyed White Dragon".

Blauäugiger weißer Drache

Seltenheit Preis
Normal 155
Super 238
Ultra 325
Secret 2136
Parallel 226
Ultimate 13835
Holographic 4846
N-Parallel 145
Millennium 1032
KC 862
KC-Ultra 1397
Holo-Parallel 2754

Wie in der Tabelle angegeben, enthält die Yugioh-Karte verschiedene Raritäten, und der Preis steigt und fällt je nach Raritätsunterschied. Dies ist ein sehr extremes Beispiel, aber es gibt einen fast 100-fachen Preisunterschied zwischen Normal und Ultimate. Wie hoch ist also der Preis für "Blue-eyed White Dragon"? Es ist jedoch eine Tatsache, dass es schwierig ist, zu einem Preis zu sagen, da die Seltenheit berücksichtigt werden muss. Da ich hier den Durchschnittswert verwendet habe, scheint er von den Preisschwankungen hier betroffen zu sein. Daher ist es in der anfänglichen Datenaufbereitungsphase auf "Normal" beschränkt. Ich denke, es wäre besser gewesen, Bedingungen wie zu geben. Ich denke. Dies wäre jedoch ärgerlich, da Xyz und Synch, die nur seltene Karten sind, nicht in die Daten eingehen würden.

Karten mit vielen Themen zum Kombinieren

Obwohl es sich noch in der Untersuchungsphase befindet, ist die Vorhersagegenauigkeit für "Karten mit vielen zu kombinierenden Themen" nicht hoch. Es ist das Ergebnis. Das Folgende sind die Ergebnisse einer Umfrage zu Shinryu.

Kartenname Preis Basic+Market Basic+Market+Deck
Echter Drachen Maschinensoldat Darth Metatron 76 152.08 141.94
Wahrer Drachenritter Dryus III 26 117.07 120.43
Shinryu Schwertkämpfer Meister P. 711 506.38 469.86
True Dragon Swordsman Master P. 67 263.12 286.72
Shinryu Kenshi Dynamite K. 29 323.41 324.99
Wahrer Drachenkaiser V..F.D. 214 328.58 330.36
Wahrer Drachenkaiser Agni Mazud V. 329 235.98 242.48
Wahrer Drachenkaiser Baharstos F. 588 187.68 170.31
Wahrer Drachenkaiser Lithos Azim D. 1234 329.10 326.80
Wahrer Drachenkrieger Ignis H. 28 250.82 247.79
Wahre Drachenguru Majestät M. 30 287.44 265.60
Shinryu 凰 Mariamune 290 218.55 202.92

Selbst wenn Sie Deckinformationen hinzufügen, bewegt sich der Preis nicht in Richtung Gut. Ich denke, das liegt daran, dass in der aktuellen Situation von Yugioh angesichts der Deckkonfiguration, in der Frösche verwendet werden, weniger Muster verwendet werden können als zuvor, gültige Karten festgelegt sind und der Datensatz die Vorhersage von Preisen erleichtert. Allerdings in Bezug auf Shinryu

Und selbst mit ein wenig Recherche gibt es viele Deckkompositionsmuster. Vielleicht funktionieren die Deckinformationen deshalb nicht und sind unvorhersehbar. Ähnliche Ergebnisse sind in "Kozmo", "Summon Beast", "Infernoid" usw. zu sehen. Da es sich bei diesen Themen wahrscheinlich um neue Formen handelt, wird angenommen, dass eine der Ursachen darin besteht, dass die Standardkarten in der Versuchsphase noch nicht entschieden wurden. Dies steht im Einklang mit dem Grund, dass "der Preis für sehr häufige Karten nicht vorhergesagt werden kann".

Zusammenfassung

Impressionen

Es war schwieriger als ich erwartet hatte. Es war schwierig, mit "Karteninformationen" vorherzusagen, aber es war ziemlich schwierig, selbst mit hinzugefügten "Marktinformationen" nur eine angemessene Genauigkeit zu erzielen. Es gab zu viele Leerzeichen, und das mangelnde Wissen über Yugioh trug zur Schwierigkeit der Vorhersage bei. Nach meiner Rückkehr durch die Kombination von "Karteninformationen" und "Marktinformationen" konnte ich keine große Vorhersage treffen, also "Hmm. Ob" blauäugig "im Namen der Karte enthalten ist oder nicht." Aber es ist eine sehr künstliche Abstimmung "oder" Analyse der natürlichen Sprache des Monstereffekts? Ist es nicht zu schwer für eine GW-Aufgabe? " Während ich die Liste der unvorhersehbaren Karten betrachtete, sah ich die Sequenz von "Legendary Akaishi", "Crimson-eyed Black Flame Dragon" und "Crimson-eyed Evil Star Dragon-Meteor Dragon". Als ich dachte: "Ich muss das Kombinationssystem berücksichtigen", erinnerte ich mich: "Nun," Verteilungshypothese ". Es gab eine solche Geschichte um word2vec in der Geschichte der Verarbeitung natürlicher Sprache, daher dachte ich, dass es ziemlich interessant wäre, die Wahrscheinlichkeit des gleichzeitigen Auftretens der Karte einzugeben, also habe ich die Informationen als Deckinformationen aufgenommen. Infolgedessen hat es nicht sehr gut funktioniert, aber es ist analytisch ziemlich interessant. Ich dachte. Ich würde gerne etwas Interessantes mit maschinellem Lernen machen, aber ich habe es satt zu denken: "Ich wünschte, ich könnte etwas genauer werden." schwer. Immerhin, wenn Sie einen Artikel über Yugioh schreiben [Slow Live-Kommentar] Können die Leute nur mit den Karten kämpfen, die sie aufheben? [Yugio] Ich wollte Tribut zollen. Damit bin ich zufrieden. damit,

** "Künstliche Intelligenz kann den Preis der Yugioh-Karte vorhersagen" **

** "Aber es ist schwierig, also wenn du es tust, werde ernst!" ** image

Recommended Posts

Kann künstliche Intelligenz den Preis der Yugioh-Karte vorhersagen?
Vorhersage von Kerzenbeinen mit künstlicher Intelligenz
Verwenden Sie PyCaret, um den Preis von Gebrauchtwohnungen in Tokio vorherzusagen!
Die erste künstliche Intelligenz. So überprüfen Sie die installierte Version von Tensorflow.
Verwenden Sie das Qore SDK, um BTC-Preiserhöhungen und -senkungen vorherzusagen
Können Kalman-Filter verwendet werden, um Aktienentwicklungen vorherzusagen?
Prognostizieren Sie die zweite Runde des Sommers 2016 mit scikit-learn
Hier ist eine, ich werde die mit "künstlicher Intelligenz" ausgestatteten Anwendungen zusammenfassen, an denen ich interessiert war