[PYTHON] L'intelligence artificielle peut-elle prédire le prix de la carte Yugioh?

"La carte prédit"

Aperçu

Préface

Récemment, Yugioh est soudainement devenu un boom autour de moi. Pendant ce temps, les gens autour de moi sont allés dans un magasin de cartes et ont acheté des cartes chères, et on m'a demandé: "Pourquoi le prix d'une carte est-il si cher?" Et "Une carte forte est-elle chère?" "Comment le prix de la carte est-il déterminé?" S'il ne peut être évalué que par la force de la carte, j'ai commencé à penser "N'est-il pas possible de prédire le prix de la carte uniquement à partir des informations de la carte?" Si tel est le cas, peut-il être prédit par l'apprentissage automatique? alors

** L'intelligence artificielle peut-elle prédire le prix de la carte Yugioh? ** **

Préparation préalable

Il est facile de collecter simplement des informations de carte, mais des cartes récemment utilisées. C'est difficile quand il s'agit de. Je pense. Par conséquent, je me réfère au site "Kiriburo!". Nous recueillons principalement des informations sur les cartes à partir de recettes de deck récentes sur ce site. Cette fois, j'ai fait référence à

J'ai obtenu la recette du deck à partir de ces 7 URL. Le script de grattage ressemble à ceci.

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 = "habituellement" 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")

            #Extraire uniquement l'URL du deck
            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")

Fondamentalement, le format de données des pandas est routé. De plus, j'utilise une bibliothèque appelée pyquery pour le scraping. Jusqu'à présent, j'utilisais BeautifulSoup, mais il semble que pyquery soit également utilisé, alors j'ai essayé de l'utiliser. Il semble que "pyquery peut être gratté comme jquery", mais je n'ai jamais utilisé jquery. Cependant, pyquery lui-même est assez facile à utiliser. Le reste est pickle pour ne pas mettre de charge sur le serveur. De plus, cette fois, nous ne prêtons attention qu'aux ** cartes monstres **. La raison en est qu'il est difficile de créer un modèle qui gère en même temps la magie, les pièges et les cartes monstre. De plus, les monstres dotés d'un pouvoir offensif et d'un pouvoir défensif sont exclus. C'est aussi la même raison, car il est difficile de faire un modèle. À la suite de grattage

--Nombre de ponts 274 --Nombre de cartes 506

Les données ont été collectées.

** "J'ai collecté les informations de la carte" **

Données collectées

** Informations sur la carte (basique) **

--Niveau

Informations de carte très ordinaires. Cependant, en réalité, certains ajustements ont été apportés. Par exemple, "attribut" est au format OneHotVector, et s'il s'agit d'un attribut sombre, is_Dark = 1, S'il s'agit d'un attribut light, il est exprimé comme is_Light = 1. Il en est de même pour les types de monstres, avec is_Xyz = 1 pour Xyz et is_Fusion pour la fusion. De plus, l'effet n'est pas pris en compte car il est difficile à exprimer.

** Informations sur le marché (marché) **

--Nombre de ponts adoptés --Nombre de magasins

Je pensais qu'il était impossible de «prédire le prix à partir des informations de la carte» que j'avais initialement trouvées. Je pensais que la raison était que "le prix d'une carte ne dépend pas de la force de la carte. Il ne s'exprime que par l'équilibre entre l'offre et la demande". C'est le soi-disant point de vue économique. Par conséquent, nous avons émis l'hypothèse que «demande = nombre de ponts adoptés» et «offre = nombre de magasins manipulant». Par conséquent, je pensais que «les cartes avec beaucoup de demande (nombre de jeux adoptés) sont élevées» et «les cartes avec beaucoup d'approvisionnement (nombre de magasins) sont bon marché».

** Informations sur le pont (Deck) **

--Probabilite conditionnelle

C'est la nature adoptée sur la base de l'hypothèse que "les cartes qui sont souvent utilisées dans les jeux avec un certain modèle sont chères?" Par exemple, si vous souhaitez utiliser le "Blue Eyes Ultimate Dragon", vous aurez besoin de trois "Blue Eyes White Dragons". De cette façon, vous avez besoin d'une carte appelée B pour utiliser une carte appelée A. Par conséquent, si le prix d'une carte forte A est élevé, le prix de la carte B nécessaire pour cela sera également élevé. Je l'ai adopté pour exprimer le contenu. A exprimé ici est "le dragon ultime aux yeux bleus" et B est "le dragon blanc aux yeux bleus". Je vais vous expliquer comment le calculer avec un exemple simple. Considérez les ponts A et B. suivants

Deck A: «Dragon blanc aux yeux bleus» «Dragon ultime aux yeux bleus» «Reliques du dragon» Deck B: «Dragon blanc aux yeux bleus» «Dragon ultime aux yeux bleus» «Rush»

En cela, nous allons considérer toutes les paires de cartes et les compter.

Dragon blanc aux yeux bleus Dragon ultime aux yeux bleus Trésor du dragon se ruer
Dragon blanc aux yeux bleus 0 2 1 1
Dragon ultime aux yeux bleus 2 0 1 1
Trésor du dragon 1 1 0 0
se ruer 1 1 0 0

Par exemple, la paire "Blue-eyed White Dragon" et "Blue-eyed Ultimate Dragon" est à la fois sur le Deck A et le Deck B, donc la valeur "2" est entrée. D'un autre côté, "Blue-eyed White Dragon" et "Rush" n'existent que dans le Deck B, ils sont donc 1. Cette valeur est finalement normalisée à la colonne.

Dragon blanc aux yeux bleus Dragon ultime aux yeux bleus Trésor du dragon se ruer
Dragon blanc aux yeux bleus 0.00 0.50 0.25 0.25
Dragon ultime aux yeux bleus 0.50 0.00 0.25 0.25
Trésor du dragon 0.50 0.50 0.00 0.00
se ruer 0.50 0.50 0.00 0.00

Cette matrice est utilisée comme valeur. C'est ce qu'on appelle la probabilité conditionnelle.

Méthode de vérification

Les principales bibliothèques utilisées sont Pandas et scikit-learn. En interne, j'utilise également numpy de temps en temps.

Je n'entrerai pas trop dans les détails, mais j'ai utilisé la régression Lasso comme méthode d'apprentissage automatique. La raison en est que les performances de Lasso et Ridge étaient bonnes lorsque l'analyse de régression a été effectuée avec Linear, Ridge et Lasso. De plus, Lasso a été adopté car il était facile de comprendre l'explication des variables.

De plus, pour les informations de pont, la matrice mentionnée ci-dessus n'est pas utilisée telle quelle. Il est réduit à 50 dimensions par SVD. La raison en est qu'il y a trop de variables explicatives, et lorsque la réduction de dimension est effectivement effectuée avec SVD, le total de expliqué_variance_ratio_ dans 50 dimensions dépasse 90%, donc cette valeur a été utilisée.

Le modèle lui-même est soumis à une vérification croisée de 3 divisions. Les hyper paramètres sont décrits dans la [page Lasso] de scikit-learn (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso), alpha Le paramètre de est ajusté de 0,1 à 1,0 par incréments de 0,1, et Gridsearch CV est utilisé pour rechercher si le paramètre de normalisation est vrai ou faux. Parmi eux, le modèle avec le meilleur coefficient R ^ 2 est sélectionné. Après cela, à des fins de vérification, toutes les données d'apprentissage sont appliquées au modèle avec le meilleur coefficient R ^ 2, et la vérification suivante est effectuée.

résultat de l'inspection

Cette fois, nous avons effectué trois types de vérification. Bien que nous l'appelions ici "modèle à un élément", nous revenons en sélectionnant un seul parmi les trois types "d'informations sur la carte (de base)", "informations sur le marché (marché)" et "informations sur le deck (Deck)". .. Le "modèle à deux éléments" est un modèle dans lequel deux sont extraits de trois types d'éléments et combinés, tels que "informations de carte (de base)" + "informations de marché (marché)". Enfin, nous vérifions avec un "modèle à trois éléments" qui les utilise tous.

1 modèle d'identité

Identité R^2 Pourcentage d'erreur inférieur à 50 yens(%) Pourcentage d'erreur inférieur à 100 yens(%) Pourcentage d'erreur inférieur à 150 yens(%) Pourcentage d'erreur inférieur à 200 yens(%)
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

Il y a trois choses qui ressortent de ce résultat. Tous les modèles ont un faible R ^ 2. Cela ne semble pas très bien. La seconde était que la précision était bonne lorsque le prix était prédit en utilisant uniquement les informations sur le marché (marché). à propos de ça. R ^ 2 est d'environ 0,03, mais le fait qu'il y ait 11% de cartes qui peuvent être prédites avec une erreur de moins de 50 yens est environ 2% plus élevé que lorsque d'autres qualités sont sélectionnées, il semble donc y avoir une certaine influence sur la régression. est. Troisièmement, le modèle renvoyé par les informations de pont (Deck) est un modèle avec une erreur importante. à propos de ça. La valeur R ^ 2 est la plus basse. De plus, le taux d'erreur inférieur à 50 yens est presque le même que celui de Basic, mais à part cela, il est différent de 4% à 10% ou plus, il semble donc que l'erreur soit assez importante.

À partir de ce contenu, on peut voir que les facteurs importants pour la prévision des prix sont les informations sur le marché> les informations sur les cartes> les informations sur le jeu dans cet ordre.

2 modèle d'identité

Identité R^2 Pourcentage d'erreur inférieur à 50 yens(%) Pourcentage d'erreur inférieur à 100 yens(%) Pourcentage d'erreur inférieur à 150 yens(%) Pourcentage d'erreur inférieur à 200 yens(%)
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

Il y a deux choses que l'on peut voir à partir de ce modèle. R ^ 2 des informations de carte (de base) + informations de marché (marché) est d'environ 0,08, ce qui est le plus élevé. En outre, étant donné que R ^ 2 du marché modèle à 1 élément était de 0,03, il a augmenté de manière significative. De plus, tous les éléments de vérification du modèle à 2 éléments ont une précision de prédiction plus élevée. La deuxième chose à comprendre est que les performances du modèle, y compris les "informations de pont", ne sont pas bonnes. à propos de ça. Lorsque vous comparez "Market + Deck" et "Basic + Deck", "Basic + Market"> "Market + Deck" est défini pour tous les éléments d'évaluation. Il s'agit de la même évaluation que le modèle à un élément, et on peut lire à partir d'ici que la chose importante dans la prédiction est les informations de carte> les informations de deck. Mais cela s'avère intéressant. «Ratio d'erreur inférieur à 150 yens» et «Ratio d'erreur inférieur à 200 yens» ne sont pas si mauvais. à propos de ça. Il y avait un écart d'environ 7% entre le «ratio d'erreur de moins de 150 yens» de Basic et Deck dans le modèle à un élément. Cependant, du modèle à deux éléments, L'écart entre «Basic + Market» et «Market + Deck» «ratio d'erreur de moins de 150 yens» est d'environ 4%. Particulièrement remarquable est l'écart du «ratio d'erreur de moins de 200 yens», qui était de 13% dans le modèle à 1 élément et de 4% dans le modèle à 2 éléments. Par conséquent, les informations du deck semblent contribuer à réduire l'erreur dans son ensemble.

3 modèle d'identité

Identité R^2 Pourcentage d'erreur inférieur à 50 yens(%) Pourcentage d'erreur inférieur à 100 yens(%) Pourcentage d'erreur inférieur à 150 yens(%) Pourcentage d'erreur inférieur à 200 yens(%)
Basic + Market + Deck 0.07645 13.83 27.47 44.47 58.30

Enfin, il existe un modèle à trois éléments. Ce qu'il faut noter, c'est le "ratio (%) de l'erreur de moins de 50 yens". C'est environ 1% mieux que le modèle "Basic + Market". Le nombre total de cartes étant d'environ 500, il semble qu'environ 5 se soient améliorées. À partir de là, les informations de pont peuvent contribuer à améliorer la précision des prévisions. à propos de ça.

image

Enquête sur les coefficients

Ensuite, j'ai étudié le coefficient en revenant à Lasso. La valeur utilise celle du modèle à trois éléments. Le coefficient commençant par svd est la valeur obtenue en réduisant les informations de deck mentionnées ci-dessus par SVD. Bien que ce soit un élément de la carte, qu'il s'agisse de Xyz ou non semble affecter considérablement le prix. En outre, il semble que la reconnaissance que «les cartes vanille sont bon marché» soit correcte, bien entendu. En revanche, il est un peu douteux que Pendulum ait un coefficient négatif. Aussi, "Les cartes avec beaucoup de demande (nombre de jeux adoptés) sont élevées." "Les cartes avec beaucoup d'approvisionnement (nombre de magasins) sont bon marché." La première hypothèse semble être généralement correcte. La valeur du coefficient du nombre de ponts adoptés est positive, et le nombre de magasins qui le traitent est négatif. De plus, en tant que race, il semble que les dragons et les dragons de mer ont tendance à être chers. Une autre chose qui est surprenante est que le coefficient des attributs n'est pas 0. à propos de ça. Je ne l'ai pas analysé, mais les attributs des monstres chers et faciles à utiliser ne sont-ils pas biaisés? Il paraît que. Je n'ai pas regardé le nombre de platines en détail, mais même si je reviens en arrière, y compris 50 éléments, je n'utilise en fait que 8 éléments. J'ai ressenti cela. Pour dire quelques mots ici, je pense qu'il y a des attributs et des races qui ne sont pas là. La raison en est que les cartes obtenues à l'origine par grattage sont biaisées et que la liste des attributs et des races est extraite de ces données.

élément Valeur du coefficient
niveau 0.000
Puissance offensive 0.000
Puissance défensive 0.006
vanille -37.348
effet 0.000
la fusion 0.000
tuner 0.000
Synchroniser 0.000
Xyz 139.618
Pendule -2.289
Invocation spéciale 0.000
inverser 0.000
syndicat 0.000
double 0.000
La cérémonie 0.000
Interdire 0.000
Limites 0.000
Sans limites 0.000
Famille de plantes 0.000
Oiseaux et bêtes 0.000
Tribu de la flamme 0.000
Famille de machines 0.000
Tribu guerrière 0.000
Diable 0.000
Dinosaure 0.000
Psychique 0.000
Aquarium 0.000
Tribu guerrière bête -2.044
anges 3.232
Assistants 0.000
Tribu du rock 0.000
Tribu Andet 0.000
Reptiles 0.000
Tribu de dragon 139.839
Famille de poissons 0.000
Tribu de la bête 0.000
Dragon de mer 190.029
Dragon fantôme 0.000
Tribu du tonnerre 0.000
Insectes -32.625
Attribut d'obscurité 0.000
Attribut léger 62.002
Attribut de vent 12.426
Attribut de flamme 0.000
Attribut de la Terre -8.750
Attribut de l'eau 0.000
Nombre de magasins -4.901
Nombre de ponts adoptés 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

Les informations sur le deck étaient-elles efficaces?

Les informations du deck étaient-elles efficaces dans l'histoire jusqu'à présent? Je pense qu'il y avait une question. Dans le plan original, j'ai inclus cette information à partir de l'hypothèse que «la carte n'est-elle pas souvent utilisée dans un certain modèle de jeux de cartes? Je voudrais présenter quelques données intéressantes.

Pont Gael

C'est un deck qui se bat autour de monstres appelés grenouilles, mais je pense que c'est un exemple de l'effet des informations de deck. On peut voir que l'erreur est plus petite lorsque les informations de jeu sont ajoutées que le résultat prédit uniquement par les informations de carte et les informations de marché. De plus, il est intéressant de noter que des données à la fois positives et négatives sont disponibles. Par exemple, la grenouille démoniaque devait coûter 136 yens, mais en ajoutant des informations sur le pont, elle est de 171 yens. Par conséquent, en ajoutant des informations sur le deck, le prix attendu augmentera et se rapprochera du prix d'origine. D'autre part, si vous regardez la grenouille mochi, le prix baissera et se rapprochera du prix d'origine en ajoutant des informations sur le pont. De cette façon, le prix estimé fluctue en fonction des informations de deck, et il semble que les informations de deck soient efficaces.

nom de la carte prix Basic+Market Basic+Market+Deck
Grenouille démon 197 136.98 171.25
Grenouille élégante 444 202.34 229.41
Grenouille Machi 319 228.81 253.91
Grenouille Mochi 162 253.00 230.94

Pont au clair de lune

Citation

Je compare les prix de monstres appelés moonlights, ce qui n'est pas un très bon résultat. Dans un sens, c'est comme prévu, mais c'est fondamentalement au-dessus. En particulier, la largeur croissante du mouton noir au clair de lune est proche de 50 yens, ce qui est loin des 35 yens d'origine. Peut-être que le prix est en hausse à cause du thème du clair de lune. Je le prédis.

nom de la carte prix Basic+Market Basic+Market+Deck
Tigre au clair de lune 29 149.88 179.03
Mouton noir au clair de lune 35 87.14 134.17
Moonlight Mai Panther Princess 165 90.09 114.96
Princesse lion danse au clair de lune 95 92.06 116.14
Clair de lune Aya Hina 271 123.68 148.71
Chat bleu clair de lune 39 132.29 156.05
Loup au clair de lune 28 158.15 185.12

Groupe de cartes super fréquentes

Il s'agit d'un groupe de cartes utilisé dans 80% à 90% ou plus des decks. Comme vous pouvez le voir, le prix est réduit en ajoutant des informations sur le pont. La raison est simple: cela ne dépend pas d'un deck spécifique, il perd donc ses fonctionnalités et il n'y a pas d'augmentation de prix en raison des informations sur le deck. Par conséquent, je pense que le prix a baissé. Comme vous pouvez le voir à partir de la comparaison des coefficients, les informations sur le deck contribuent essentiellement à l'augmentation du prix. Par conséquent, sans cet effet, le prix sera plus bas que s'il n'y avait pas d'informations sur le deck.

nom de la carte Nombre de ponts adoptés prix Basic+Market Basic+Market+Deck
Prolifération de G 283 791 954.94 948.52
Ashyu Urara 265 1845 1039.92 984.87
Lapin fantôme 238 1546 1032.86 966.43

Prise en compte des cartes imprévisibles

Carte à prix élevé

Cette fois, je ne pouvais pas prévoir la carte chère. Vous trouverez ci-dessous diverses statistiques sur les prix. Il y a deux choses à regarder, la moyenne et 50%. La moyenne est de 312 yens, tandis que 50% est de 151 yens. En fait, il est tiré par un petit nombre de cartes à prix élevé et la moyenne globale augmente. Comme vous pouvez le constater, le nombre de cartes à prix élevé est extrêmement faible et le prix lui-même est difficile à prévoir.

article valeur
moyenne 312.31
Distribué 413.44
le minimum 23.00
25% 48.25
50% 151.50
75% 400.75
max 3547.00

Cartes avec des prix variables

En fait, le prix de la carte «Dragon Blanc aux Yeux Bleus» ne peut être prédit.

nom de la carte prix 3 Valeur prédite du modèle d'identité
Dragon blanc aux yeux bleus 142 587.06

Certes, il y a un écart entre la valeur prévue et le prix. J'étais curieux et j'ai enquêté sur le prix du "Dragon Blanc aux Yeux Bleus".

Dragon blanc aux yeux bleus

Rareté prix
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

Comme indiqué dans le tableau, il existe différentes raretés dans la carte Yugioh, et le prix augmente et diminue en fonction de la différence de rareté. C'est un exemple très extrême, mais il y a une différence de prix de près de 100 fois entre Normal et Ultimate. Par conséquent, quel est le prix du "Dragon Blanc aux Yeux Bleus"? Cependant, il est un fait qu'il est difficile de dire à un prix car la rareté doit être prise en considération. Depuis que j'ai utilisé la valeur moyenne ici, il semble qu'elle soit affectée par la fluctuation du prix ici. Par conséquent, il est limité à "Normal" au stade initial de la préparation des données. Je pense qu'il aurait été préférable de donner des conditions telles que. Je pense. Cependant, ce serait ennuyeux car Xyz et Synch, qui ne sont que des cartes rares, n'entreraient pas dans les données.

Cartes avec de nombreux thèmes à combiner

Bien qu'il soit encore au stade de l'enquête, la précision de la prédiction n'est pas élevée pour "des cartes avec de nombreux thèmes à combiner". C'est le résultat. Voici les résultats d'une enquête sur Shinryu.

nom de la carte prix Basic+Market Basic+Market+Deck
Vrai Dragon Machine Soldier Dark Metatron 76 152.08 141.94
Véritable chevalier dragon Dryus III 26 117.07 120.43
Shinryu Swordsman Master P 711 506.38 469.86
Vrai dragon épéiste maître P 67 263.12 286.72
Shinryu Kenshi Dynamite K 29 323.41 324.99
Vrai dragon empereur V.F.D. 214 328.58 330.36
Véritable empereur dragon Agni Mazud V 329 235.98 242.48
Véritable empereur dragon Baharstos F 588 187.68 170.31
Véritable empereur dragon Lithos Azim D 1234 329.10 326.80
Véritable guerrier dragon Ignis H 28 250.82 247.79
Véritable Dragon Guru Majesty M 30 287.44 265.60
Shinryu 凰 Mariamune 290 218.55 202.92

Même si vous ajoutez des informations sur le deck, le prix ne va pas dans le sens du bien. Je pense que c'est parce que dans la situation actuelle de Yugioh, compte tenu de la configuration du pont qui utilise des grenouilles, il y a moins de modèles qui peuvent être utilisés qu'auparavant, les cartes valides sont fixées et l'ensemble de données facilite la prédiction des prix. Cependant, concernant Shinryu

--Dinosaure vrai dragon

Et, il existe de nombreux modèles de composition de deck, même avec un peu de recherche. C'est peut-être pour cela que les informations du deck ne fonctionnent pas et sont imprévisibles. Des résultats similaires peuvent être vus dans "Kozmo", "Summon Beast", "Infernoid", etc. Puisque ces thèmes sont probablement de nouvelles formes, on pense que l'une des causes est que les cartes standard n'ont pas encore été décidées au stade des essais et erreurs. Cela concorde avec la raison pour laquelle "le prix des cartes super-fréquentes ne peut être prédit".

Résumé

Impressions

C'était plus dur que ce à quoi je m'attendais. Il était difficile de prévoir avec les "informations sur les cartes", mais il était assez difficile d'obtenir une précision raisonnable même avec des "informations sur le marché" ajoutées. Il y avait trop de blancs et le manque de connaissance de Yugioh ajoutait à la difficulté de la prédiction. Après être revenu en combinant "informations sur la carte" et "informations sur le marché", je n'ai pas fait beaucoup de prédictions, donc "Hmm. Que" les yeux bleus "soit inclus ou non dans le nom de la carte." Mais, c'est un réglage très artificiel, "ou" Analyser le langage naturel de l'effet monstre? N'est-ce pas trop lourd pour une tâche GW? " Pendant ce temps, quand je regardais la liste des cartes imprévisibles, j'ai vu la gamme de "Legendary Akaishi", "Crimson-eyed Black Flame Dragon" et "Crimson-eyed Evil Star Dragon-Meteor Dragon". Quand j'ai pensé: «Je dois prendre en considération le système de combinaison», je me suis souvenu: «Eh bien,« hypothèse de distribution ». Il y avait une telle histoire autour de word2vec dans l'histoire du traitement du langage naturel, alors j'ai pensé qu'il serait très intéressant de mettre dans la probabilité de co-occurrence de la carte, donc j'ai incorporé les informations comme informations sur le deck. En conséquence, cela n'a pas très bien fonctionné, mais c'est assez intéressant sur le plan analytique. J'ai pensé. J'aimerais faire quelque chose d'intéressant avec l'apprentissage automatique, mais j'en ai marre de penser: «J'aimerais pouvoir obtenir un peu plus de précision». difficile. Après tout, si vous écrivez un article sur Yugioh, après tout [Commentaire lent en direct] Les gens peuvent-ils se battre uniquement avec les cartes qu'ils ramassent? [Yugio] Je voulais rendre hommage. Je suis satisfait de cela. alors,

** "L'intelligence artificielle peut prédire le prix de la carte Yugioh" **

** "Mais c'est difficile, alors si vous le faites, soyez sérieux!" ** image

Recommended Posts

L'intelligence artificielle peut-elle prédire le prix de la carte Yugioh?
Prédire les cuisses de bougie avec l'intelligence artificielle
Utilisez PyCaret pour prédire le prix des appartements d'occasion à Tokyo!
La première intelligence artificielle. Comment vérifier la version de Tensorflow installée.
Utilisez le SDK Qore pour prédire les augmentations et les baisses de prix BTC
Les filtres Kalman peuvent-ils être utilisés pour prédire les tendances boursières?
Prédisez le deuxième tour de l'été 2016 avec scikit-learn
En voici une, je vais résumer les applications équipées "d'intelligence artificielle" qui m'intéressaient