MonkeyJS

基於Javascript的分佈式機器學習框架

Eng - -

MonkeyJS 是什麼

MonkeyJS是一個基於Javascript、Web和分佈式計算的機器學習框架和網絡系統。 MonkeyJS利用猴子(Monkeys)的幫助推導出模型。猴子?你在跟我開玩笑嗎?

法國數學家埃米爾·博雷爾(Émile Borel)在一本於1913年出版談概率的書籍中,提出了無限猴子定理(Infinite Monkey Theorem)。這個定理是,如果無數猴子在打字機上隨機打字,並持續無限久的時間,它們必然會打出莎士比亞的作品。 當然,我們的目標不是製作莎士比亞的作品,而是機器學習。



為了實現這一目標,我們在全球範圍內僱用了大量的猴子。更多



一個簡單的例子
假設你擁有自2016/17賽季以來英超聯賽的統計數據集 (下載CSV數據集),你希望想開發一個投注英超聯賽的投注模型, 你相信射中目標的次數可能是預測勝利者的決定因素。

第1步: 提出一個模型

你想到了以下模型:

主隊射中目標平均值 > aAND客隊射中目標平均值 < b

* 過去7場比賽射中目標平均值

在Javascript語言中,模型可以寫成:

avgHomeShotsOnTarget > a && avgAwayShotsOnTarget < b


我們在第3步討論莎士比亞函數(Shakespeare Function)時,我們會再作解釋。

第二步:確定訓練參數的範圍

若上述情況成立,則將賭注押在主隊。 但是,a和b的優化值(Optimal Values)是多少? 你可以從一些歷史數據開始,使用MonkeyJS來幫助找尋優化值。

首先,你需要定義a和b的範圍。 你可以定義在scope.js中:

 var scope = [
	"a#0-10:1",
	"b#0-10:1"
];

這意味著a將位於1到10之間,間距為1.即a將是1,2,3,4,5,6,7,8,9或10中的任何整數。 b也是一樣,由1到10, 間距為1。

第三步:建立莎士比亞函數(Shakespeare Function)

來到最有趣的部分,── 莎士比亞函數。 猴子們將利用MonkeyJS來不停地運行莎士比亞函數模擬結果。

function Shakespeare() {
	var betamount = 50;
	var bankroll = 1000;
	var win_count = 0;
	var total_count = 0;
		
	for(var i=0;i<dataset.length-1;i++) {
		// get data from csv
		var avgHomeShotsOnTarget = monkey.datasetValue(i,'avgHomeShotsOnTarget');
		var avgAwayShotsOnTarget = monkey.datasetValue(i,'avgAwayShotsOnTarget');
		var odd_home = monkey.datasetValue(i,'odd_home');
		var odd_away = monkey.datasetValue(i,'odd_away');
		var homeScore = monkey.datasetValue(i,'homeScore');
		var awayScore = monkey.datasetValue(i,'awayScore');
		var tobet = false;
		
		// if losing all money
		if (bankroll < 0) return bankroll.toFixed(2);
		
		// Criteria
		if (avgHomeShotsOnTarget > a && avgAwayShotsOnTarget < b) {
			tobet=true;
		}
		
		if (tobet) {
			if (homeScore > awayScore) {
				bankroll = (bankroll - betamount) + betamount*odd_home;
				win_count++;
				total_count++;
			}
			else { 
				bankroll = bankroll - betamount;
				total_count++;
			}
		}
	}
	return bankroll.toFixed(2);
}		

Results:


          

優化值:


          

在大約80%的情況下,你將獲得$3,319.5,優化值為 a = 3 和 b = 5,我們將以此表達: 3319.5 [3,5]

你是從$1,000的資金開始,這意味著如果你在主隊射中目標平均值(a)大於3客隊射中目標平均值(b)少於5時下注 (投注額為資金的5%),你的利潤將為$2,319.5。

雖然這種投注模型可以為你帶來了利潤,但這是一個非常簡單的模型,請不要依賴這個投注模式下注啊!但是,如果投注模型可以包含更多參數,如角球數目、任意球數目,反擊數目,聯賽排名等,而該投注模型不被大眾所知道,我們是有可能推導出一個在長遠而言可獲得正回報的投注模型。事實上,我們正​​在通過猴子的幫助研究各種投注模型。 請密切關注我們的 Medium 動態。

設立一個培訓模型,更廣泛的參數範圍,更多的參數組合和更多的計算能力是不可或缺的。你可以通過使用自己的瀏覽器在1-2秒內使用帶有兩個參數的示波器(如上例)獲得優化結果。但如果我們有更多參數就不會出現這種情況,這就是為什麼我們的猴子網絡可以提供幫助的原因。

你現在可以免費登記, 建立並訓練你的機器學習模型。 透過簡單易用的控制台和用戶界面,你可以測試、配置和隨時隨地監控你的機器學習模型。

MonkeyJS 控制台畫面:


付款

收款

交易紀錄

設定

登出

Eng - -