Liigan tilastoja ja vedonlyöntikertoimia kaudelle 2021-22

Taas on alkaneet Liigan pelit, joten oli aika päivittää myös PowerBI raportit uudelle kaudelle. Viime kaudella neuroverkkopohjainen vedonlyöntikertoimien ennustusmalli tuotti 5 €:n panoksilla pelattuna 79 € voittoa, kun laskennallinen tappio olisi ollut 68 €. Toisin sanoen täysin satunnaiseen vedonlyöntiin verrattuna malli oli 147 € parempi.

Aloitin oman vedonlyönnin 24.9. ja parin kierroksen jälkeen tappiota on 31 €. Kausi on pitkä ja paljon ehtii vielä tapahtumaan. Tulen tänne julkaisemaan noita ennustemallin tuottamia vedonlyöntikertoimia ja näytän oman kassan kehitykseni.

Alla on myös toinen PowerBI raportti, joistain valikoiduista Liigan tilastoista.

Jääkiekkoliigan tilastoja ja vedonlyöntikertoimia

Sain vihdoin korjattua viime kaudella ilmenneet ongelmat, jotka liittyivät sekä jääkiekkoliigan vedonlyöntikertoimien laskemiseen että erilaisten tilastojen julkaisemiseen. Aloitan siis taas näiden tietojen julkaisemisen.

Voi olla, että tilastoja päivitän harvemmin, koska Liigan web-sivu on ruvennut herjaamaan “Internal Server Erroria”, kun sieltä hakee suurempia tietomassoja. Vedonlyöntikertoimia tulen kuitenkin julkaisemaan joka kierrokselle. Nykyinen malli pohjautuu neuroverkkolaskentaan, mutta suunnitelmissa on laajentaa sitä toisella mallilla (poisson tai voting ensemble pohjainen) ihan vain mielenkiinnosta. Otan mukaan ehkä jopa NHL-pelien vedonlyöntikertoimien laskennan.

Nykyinen neuroverkkomalli oli selkeästi voitollinen toissa kaudella, mutta viime kaudella se oli hiukan tappiollinen. Huomasin korjauksia tehdessäni, että mallin uudelleenkoulutus ei ollut toiminutkaan viime kaudella, mutta nyt tämä virhe on korjattu. Pelaan itse mallin suositusten mukaisesti 5 €:n panoksilla ja päivitän myös vedonlyöntikassani kehitystä. Käytä oikean alakulman nuolisymbolia avataksesi raportin kokonäytön kokoiseksi.

Jatka lukemista “Jääkiekkoliigan tilastoja ja vedonlyöntikertoimia”

Azure Machine Learning retraining and scoring with Data Factory

My previously created Azure Machine Learning retraining and scoring model created with Azure Logic App and PowerBI (here is more info https://www.kruth.fi/uncategorized/azure-machine-learning-retrain-running-r-scripts-with-power-bi-and-some-dax/) stopped working last January. I didn’t have enough motivation until now to start digging to find out what was wrong. Reason revealed to be removed component from Azure Logic App – namely Azure ML component. It just doesn’t exists any more.

I started to investigate what can I do to replace that solution and found this article: https://azure.microsoft.com/en-us/blog/getting-started-with-azure-data-factory-and-azure-machine-learning-4/. Instructions were a little bit outdated and missing some links to Azure ML, which gaps I try to fill with this article.

This process can be separated into three parts:

  1. Machine Learning model retraining
  2. Deploying retrained model
  3. Using updated model to scoring
Jatka lukemista “Azure Machine Learning retraining and scoring with Data Factory”

Uudet moottoripyörät 2020

Traficom julkaisi 16.12.2020 lokakuun lopun tilanteen ajoneuvojen rekisteröinneistä. Päätin nyt joulun päivinä julkaista 2020 version uusien moottoripyörien myynnistä. Kasvua näyttäisi tulleen mukavanlaisesti. Kaikki kokoluokat huomioiden kasvua melkein 200 kpl eli 7,6 %. Kevyt moottoripyörää suurempien osalta kasvu oli vielä merkittävämpää eli 16,3 %.

KTM palasi kärkeen myydyimmäksi merkiksi, kun Honda Monkeyn kevariversion pahin huuma laantui, mutta se on edelleen Hondan selkeästi myydyin malli. KTM:llä kasvu jakaantui koko mallistoon. Kakkosella Yamahalla myös pientä kasvua melkein läpi koko malliston. Kawasaki teki kovan 40 %:n loikan myynnissä, kärjessä Z900 72 myydyllä pyörällä.

Triumph kasvatti myyntiään myös 62 % kärjessä uusi Rocket 3 malli 36 kappaleella. Euromääräisesti myynnin kasvu ollut varmaan vielä paljon suurempaa, kun kyseisen pyörän listahinta on 30 000 €. Aikamoista! Todennäköisimmin sellaisen näkee Helsingissä tai Tampereella, mutta myytiin niitä Lappeenrantaan ja Seinäjoellekin.

Käytettynä maahantuotujen määrä laski n. 100 kappaleella 730:een. Tähän vaikutti varmasti corona-tilanne. Käytettyjen kärjessä olivat BMW, Honda ja KTM, Harley-Davidson tippui viidenneksi. Selkeästi eniten tuodaan vuoden vanhoja pyöriä eli 75 kpl. Yli neljä vuotta vanhemmissa alkaa määrät selkeästi jo tippumaan. Itse tuotin maahan kaksi vuotta vanhan Ducatin.

Azure Automated Machine Learning

I learned just recently about new feature what Azure Machine Learning holds – Auto Machine Learning (AutoML). According to Microsoft’s documentation:

Traditional machine learning model development is resource-intensive, requiring significant domain knowledge and time to produce and compare dozens of models. Apply automated ML when you want Azure Machine Learning to train and tune a model for you using the target metric you specify. The service then iterates through ML algorithms paired with feature selections, where each iteration produces a model with a training score. The higher the score, the better the model is considered to “fit” your data.

Sounds good! I don’t have such a vast data science experience, so this kind of automated experimentation is just for people like me. There is no need for time consuming experimentation, because I don’t even know most of the algorithms.

Jatka lukemista “Azure Automated Machine Learning”

Databricks, Azure Synapse, surrogate keys, inserts instead of updates

Good Data Warehouse uses its own surrogate keys for dimension tables instead of natural key coming from a source. This way you can e.g. implement slowly changing dimensions later in the process. This time I will demonstrate how to generate surrogate keys using Databricks with Azure Synapse Analytics (f.k.a. Azure Data Warehouse).

I also demonstrate how to use inserts instead of updates when already existing row requires an update. Microsoft recommends using inserts instead of updates with Synapse. Basically this is the same with every Data Warehouse technology vendor.

I was pondering with three approaches how to generate surrogate keys when using Databricks and Azure Synapse:

  1. Use IDENTITY-column in Azure Synapse. Downside with this one is that values sometimes are not subsequent and even in some extraordinary cases might not be unique.
  2. Use Databricks’ MONOTONICALLY_INCREASING_ID-function.
  3. Use ROW_NUMBER functionality in Databricks’ SQL block.
Jatka lukemista “Databricks, Azure Synapse, surrogate keys, inserts instead of updates”

Live analysis of Finnish ice hockey league (Liiga) season 2019-20 and betting odds

I updated my analysis of Finnish ice hockey league to cover now season 2019-20. Goal is to update this analysis frequently almost after every round.

I also updated my betting odds machine learning model to forecast odds for coming games. Last season this model proved to be very successful.  In a nutshell where I should have lost 138 €, I had won 60€!  More details https://www.kruth.fi/uncategorized/liigan-vedonlyontikertoimia/#more-352 comments section.

Jatka lukemista “Live analysis of Finnish ice hockey league (Liiga) season 2019-20 and betting odds”