Espero que os colegas de classe possam dar uma estrela ao framework JStarCraft, o que pode ser considerado um incentivo ao autor!
JStarCraft RNS é um motor leve orientado para a área de recuperação de informação que segue o protocolo Apache 2.0.
Foco na resolução de problemas básicos na área de recuperação de informação: recomendação e pesquisa.
Fornece projeto e implementação de mecanismo de recomendação que atenda aos requisitos de cenários de nível industrial.
Fornece design e implementação de mecanismo de pesquisa que atenda aos requisitos de cenários de nível industrial.
JStarCraft RNS exige que os usuários tenham o seguinte ambiente:
git clone https://github.com/HongZhaoHua/jstarcraft-core.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-ai.git
mvn install -Dmaven.test.skip=true
git clone https://github.com/HongZhaoHua/jstarcraft-rns.git
mvn install -Dmaven.test.skip=true
<dependency>
<groupId>com.jstarcraft</groupId>
<artifactId>rns</artifactId>
<version>1.0</version>
</dependency>
compile group : ' com.jstarcraft ' , name : ' rns ' , version : ' 1.0 '
Properties keyValues = new Properties ();
keyValues . load ( this . getClass (). getResourceAsStream ( "/data.properties" ));
keyValues . load ( this . getClass (). getResourceAsStream ( "/recommend/benchmark/randomguess-test.properties" ));
Configurator configurator = new Configurator ( keyValues );
RankingTask task = new RankingTask ( RandomGuessModel . class , configurator );
// 训练与评估排序模型
task . execute ();
RatingTask task = new RatingTask ( RandomGuessModel . class , configurator );
// 训练与评估评分模型
task . execute ();
// 获取模型
Model model = task . getModel ();
随着信息技术和互联网的发展,人们逐渐从信息匮乏(Information Underload)的时代走入了信息过载(Information Overload)的时代.
无论是信息消费者还是信息生产者都遇到了挑战:
* 对于信息消费者,从海量信息中寻找信息,是一件非常困难的事情;
* 对于信息生产者,从海量信息中暴露信息,也是一件非常困难的事情;
信息检索的任务就是联系用户和信息,一方面帮助用户寻找对自己有价值的信息,另一方面帮助信息暴露给对它感兴趣的用户,从而实现信息消费者和信息生产者的双赢.
从信息检索的角度:
* 搜索和推荐是获取信息的两种主要手段;
* 搜索和推荐是获取信息的两种不同方式;
* 搜索(Search)是主动明确的;
* 推荐(Recommend)是被动模糊的;
搜索和推荐是两个互补的工具.
JStarCraft-RNS引擎旨在解决推荐与搜索领域的两个核心任务:排序预测(Ranking)和评分预测(Rating).
根据解决基本问题的不同,将算法与评估指标划分为排序(Ranking)与评分(Rating).
两者之间的根本区别在于目标函数的不同.
通俗点的解释:
Ranking算法基于隐式反馈数据,趋向于拟合用户的排序.(关注度)
Rating算法基于显示反馈数据,趋向于拟合用户的评分.(满意度)
关键在于具体场景中,关注度与满意度是否保持一致.
通俗点的解释:
人们关注的东西,并不一定是满意的东西.(例如:个人所得税)
Exemplo completo
Escreva um script BeanShell para treinar e avaliar o modelo e salve-o no arquivo Model.bsh
// 构建配置
keyValues = new Properties();
keyValues.load(loader.getResourceAsStream("data.properties"));
keyValues.load(loader.getResourceAsStream("model/benchmark/randomguess-test.properties"));
configurator = new Configurator(keyValues);
// 此对象会返回给Java程序
_data = new HashMap();
// 构建排序任务
task = new RankingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取排序指标
measures = task.execute();
_data.put("precision", measures.get(PrecisionEvaluator.class));
_data.put("recall", measures.get(RecallEvaluator.class));
// 构建评分任务
task = new RatingTask(RandomGuessModel.class, configurator);
// 训练与评估模型并获取评分指标
measures = task.execute();
_data.put("mae", measures.get(MAEEvaluator.class));
_data.put("mse", measures.get(MSEEvaluator.class));
_data;
// 获取BeanShell脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.bsh" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置BeanShell脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置BeanShell脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行BeanShell脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241F , data . get ( "precision" ), 0F );
Assert . assertEquals ( 0.011579763F , data . get ( "recall" ), 0F );
Assert . assertEquals ( 1.2708743F , data . get ( "mae" ), 0F );
Assert . assertEquals ( 2.425075F , data . get ( "mse" ), 0F );
Exemplo completo
Escreva scripts Groovy para treinar e avaliar o modelo e salve-o no arquivo Model.groovy
// 构建配置
def keyValues = new Properties ();
keyValues . load(loader . getResourceAsStream( " data.properties " ));
keyValues . load(loader . getResourceAsStream( " recommend/benchmark/randomguess-test.properties " ));
def configurator = new Configurator (keyValues);
// 此对象会返回给Java程序
def _data = [:];
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取排序指标
measures = task . execute();
_data . precision = measures . get( PrecisionEvaluator . class);
_data . recall = measures . get( RecallEvaluator . class);
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class, configurator);
// 训练与评估模型并获取评分指标
measures = task . execute();
_data . mae = measures . get( MAEEvaluator . class);
_data . mse = measures . get( MSEEvaluator . class);
_data;
// 获取Groovy脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.groovy" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Groovy脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Groovy脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Groovy脚本
ScriptExpression expression = new GroovyExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemplo completo
Escreva scripts JS para treinar e avaliar o modelo e salve-o no arquivo Model.js
// 构建配置
var keyValues = new Properties ( ) ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ) ) ;
var configurator = new Configurator ( [ keyValues ] ) ;
// 此对象会返回给Java程序
var _data = { } ;
// 构建排序任务
task = new RankingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取排序指标
measures = task . execute ( ) ;
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . class ) ;
_data [ 'recall' ] = measures . get ( RecallEvaluator . class ) ;
// 构建评分任务
task = new RatingTask ( RandomGuessModel . class , configurator ) ;
// 训练与评估模型并获取评分指标
measures = task . execute ( ) ;
_data [ 'mae' ] = measures . get ( MAEEvaluator . class ) ;
_data [ 'mse' ] = measures . get ( MSEEvaluator . class ) ;
_data ;
// 获取JS脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.js" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置JS脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置JS脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行JS脚本
ScriptExpression expression = new JsExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemplo completo
Escreva um script Kotlin para treinar e avaliar o modelo e salve-o no arquivo Model.kt
// 构建配置
var keyValues = Properties ( ) ;
var loader = bindings [ "loader" ] as ClassLoader ;
keyValues . load ( loader . getResourceAsStream ( "data.properties" ) ) ;
keyValues . load ( loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) ) ;
var option = Option ( keyValues ) ;
// 此对象会返回给Java程序
var _data = mutableMapOf < String , Float > ( ) ;
// 构建排序任务
var rankingTask = RankingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取排序指标
val rankingMeasures = rankingTask . execute ( ) ;
_data [ "precision" ] = rankingMeasures . getFloat ( PrecisionEvaluator :: class . java ) ;
_data [ "recall" ] = rankingMeasures . getFloat ( RecallEvaluator :: class . java ) ;
// 构建评分任务
var ratingTask = RatingTask ( RandomGuessModel :: class . java , option ) ;
// 训练与评估模型并获取评分指标
var ratingMeasures = ratingTask . execute ( ) ;
_data [ "mae" ] = ratingMeasures . getFloat ( MAEEvaluator :: class . java ) ;
_data [ "mse" ] = ratingMeasures . getFloat ( MSEEvaluator :: class . java ) ;
_data ;
// 获取Kotlin脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.kt" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Kotlin脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Option" , MapOption . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Kotlin脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Kotlin脚本
ScriptExpression expression = new KotlinExpression ( context , scope , script );
Map < String , Float > data = expression . doWith ( Map . class );
Exemplo completo
Escreva scripts Lua para treinar e avaliar o modelo e salve-o no arquivo Model.lua
-- 构建配置
local keyValues = Properties . new ();
keyValues : load ( loader : getResourceAsStream ( " data.properties " ));
keyValues : load ( loader : getResourceAsStream ( " recommend/benchmark/randomguess-test.properties " ));
local configurator = Configurator . new ({ keyValues });
-- 此对象会返回给Java程序
local _data = {};
-- 构建排序任务
task = RankingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取排序指标
measures = task : execute ();
_data [ " precision " ] = measures : get ( PrecisionEvaluator );
_data [ " recall " ] = measures : get ( RecallEvaluator );
-- 构建评分任务
task = RatingTask . new ( RandomGuessModel , configurator );
-- 训练与评估模型并获取评分指标
measures = task : execute ();
_data [ " mae " ] = measures : get ( MAEEvaluator );
_data [ " mse " ] = measures : get ( MSEEvaluator );
return _data ;
// 获取Lua脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.lua" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Lua脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Lua脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Lua脚本
ScriptExpression expression = new LuaExpression ( context , scope , script );
LuaTable data = expression . doWith ( LuaTable . class );
Exemplo completo
Escreva scripts Python para treinar e avaliar o modelo e salve-o no arquivo Model.py
# 构建配置
keyValues = Properties ()
keyValues . load ( loader . getResourceAsStream ( "data.properties" ))
keyValues . load ( loader . getResourceAsStream ( "recommend/benchmark/randomguess-test.properties" ))
configurator = Configurator ([ keyValues ])
# 此对象会返回给Java程序
_data = {}
# 构建排序任务
task = RankingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ()
_data [ 'precision' ] = measures . get ( PrecisionEvaluator )
_data [ 'recall' ] = measures . get ( RecallEvaluator )
# 构建评分任务
task = RatingTask ( RandomGuessModel , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ()
_data [ 'mae' ] = measures . get ( MAEEvaluator )
_data [ 'mse' ] = measures . get ( MSEEvaluator )
// 设置Python环境变量
System . setProperty ( "python.console.encoding" , StringUtility . CHARSET . name ());
// 获取Python脚本
File file = new File ( PythonTestCase . class . getResource ( "Model.py" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Python脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Python脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Python脚本
ScriptExpression expression = new PythonExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
Exemplo completo
Escreva um script Ruby para treinar e avaliar o modelo e salve-o no arquivo Model.rb
# 构建配置
keyValues = Properties . new ( )
keyValues . load ( $loader . getResourceAsStream ( "data.properties" ) )
keyValues . load ( $loader . getResourceAsStream ( "model/benchmark/randomguess-test.properties" ) )
configurator = Configurator . new ( keyValues )
# 此对象会返回给Java程序
_data = Hash . new ( )
# 构建排序任务
task = RankingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取排序指标
measures = task . execute ( )
_data [ 'precision' ] = measures . get ( PrecisionEvaluator . java_class )
_data [ 'recall' ] = measures . get ( RecallEvaluator . java_class )
# 构建评分任务
task = RatingTask . new ( RandomGuessModel . java_class , configurator )
# 训练与评估模型并获取评分指标
measures = task . execute ( )
_data [ 'mae' ] = measures . get ( MAEEvaluator . java_class )
_data [ 'mse' ] = measures . get ( MSEEvaluator . java_class )
_data ;
// 获取Ruby脚本
File file = new File ( ScriptTestCase . class . getResource ( "Model.rb" ). toURI ());
String script = FileUtils . readFileToString ( file , StringUtility . CHARSET );
// 设置Ruby脚本使用到的Java类
ScriptContext context = new ScriptContext ();
context . useClasses ( Properties . class , Assert . class );
context . useClass ( "Configurator" , MapConfigurator . class );
context . useClasses ( "com.jstarcraft.ai.evaluate" );
context . useClasses ( "com.jstarcraft.rns.task" );
context . useClasses ( "com.jstarcraft.rns.model.benchmark" );
// 设置Ruby脚本使用到的Java变量
ScriptScope scope = new ScriptScope ();
scope . createAttribute ( "loader" , loader );
// 执行Ruby脚本
ScriptExpression expression = new RubyExpression ( context , scope , script );
Map < String , Double > data = expression . doWith ( Map . class );
Assert . assertEquals ( 0.005825241096317768D , data . get ( "precision" ), 0D );
Assert . assertEquals ( 0.011579763144254684D , data . get ( "recall" ), 0D );
Assert . assertEquals ( 1.270874261856079D , data . get ( "mae" ), 0D );
Assert . assertEquals ( 2.425075054168701D , data . get ( "mse" ), 0D );
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | CUA | MAPA | MRR | NDCG | Novidade | Precisão | Lembrar |
---|---|---|---|---|---|---|---|---|---|---|
Mais populares | filmtrust | 43 | 273 | 0,92080 | 0,41246 | 0,57196 | 0,51583 | 11.79295 | 0,33230 | 0,62385 |
Adivinhação Aleatória | filmtrust | 38 | 391 | 0,51922 | 0,00627 | 0,02170 | 0,01121 | 91.94900 | 0,00550 | 0,01262 |
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | CUA | MAPA | MRR | NDCG | Novidade | Precisão | Lembrar |
---|---|---|---|---|---|---|---|---|---|---|
AHr | filmtrust | 12448 | 253 | 0,89324 | 0,38967 | 0,53990 | 0,48338 | 21.13004 | 0,32295 | 0,56864 |
AspectRanking | filmtrust | 177 | 58 | 0,85130 | 0,15498 | 0,42480 | 0,26012 | 37.36273 | 0,13302 | 0,31292 |
BHFreeRanking | filmtrust | 5720 | 4257 | 0,92080 | 0,41316 | 0,57231 | 0,51662 | 11.79567 | 0,33276 | 0,62500 |
RPB | filmtrust | 4228 | 137 | 0,89390 | 0,39886 | 0,54790 | 0,49180 | 21.46738 | 0,32268 | 0,57623 |
Classificação BUCMRanking | filmtrust | 2111 | 1343 | 0,90782 | 0,39794 | 0,55776 | 0,49651 | 13.08073 | 0,32407 | 0,59141 |
CDAE | filmtrust | 89280 | 376 | 0,91880 | 0,40759 | 0,56855 | 0,51089 | 11.82466 | 0,33051 | 0,61967 |
CliMF | filmtrust | 48429 | 140 | 0,88293 | 0,37395 | 0,52407 | 0,46572 | 19.38964 | 0,32049 | 0,54605 |
Deep FM | filmtrust | 69264 | 99 | 0,91679 | 0,40580 | 0,56995 | 0,50985 | 11.90242 | 0,32719 | 0,61426 |
EALS | filmtrust | 850 | 185 | 0,86132 | 0,31263 | 0,45680 | 0,39475 | 20.08964 | 0,27381 | 0,46271 |
FISMAUC | filmtrust | 2338 | 663 | 0,91216 | 0,40032 | 0,55730 | 0,50114 | 12.07469 | 0,32845 | 0,60294 |
FISMRMSE | filmtrust | 4030 | 729 | 0,91482 | 0,40795 | 0,56470 | 0,50920 | 11.91234 | 0,33044 | 0,61107 |
GBPR | filmtrust | 14827 | 150 | 0,92113 | 0,41003 | 0,57144 | 0,51464 | 11.87609 | 0,33090 | 0,62512 |
HUM | jogo | 38697 | 11223 | 0,80559 | 0,18156 | 0,37516 | 0,25803 | 16.01041 | 0,14572 | 0,22810 |
ItemBigram | filmtrust | 12492 | 61 | 0,88807 | 0,33520 | 0,46870 | 0,42854 | 17.11172 | 0,29191 | 0,53308 |
ItemKNNClassificação | filmtrust | 2683 | 250 | 0,87438 | 0,33375 | 0,46951 | 0,41767 | 20.23449 | 0,28581 | 0,49248 |
LDA | filmtrust | 696 | 161 | 0,91980 | 0,41758 | 0,58130 | 0,52003 | 12.31348 | 0,33336 | 0,62274 |
LambdaFMStatic | jogo | 25052 | 27078 | 0,87064 | 0,27294 | 0,43640 | 0,34794 | 16.47330 | 0,13941 | 0,35696 |
LambdaFMPeso | jogo | 25232 | 28156 | 0,87339 | 0,27333 | 0,43720 | 0,34728 | 14.71413 | 0,13742 | 0,35252 |
LambdaFMDinâmico | jogo | 74218 | 27921 | 0,87380 | 0,27288 | 0,43648 | 0,34706 | 13.50578 | 0,13822 | 0,35132 |
ListwiseMF | filmtrust | 714 | 161 | 0,90820 | 0,40511 | 0,56619 | 0,50521 | 15.53665 | 0,32944 | 0,60092 |
APLSA | filmtrust | 1027 | 116 | 0,89950 | 0,41217 | 0,57187 | 0,50597 | 16.01080 | 0,32401 | 0,58557 |
ClassificaçãoALS | filmtrust | 3285 | 182 | 0,85901 | 0,29255 | 0,51014 | 0,38871 | 25.27197 | 0,22931 | 0,42509 |
ClassificaçãoCD | produto | 1442 | 8905 | 0,56271 | 0,01253 | 0,04618 | 0,02682 | 55.42019 | 0,01548 | 0,03520 |
ClassificaçãoSGD | filmtrust | 309 | 113 | 0,80388 | 0,23587 | 0,42290 | 0,32081 | 42.83305 | 0,19363 | 0,35374 |
ClassificaçãoVFCD | produto | 54273 | 6524 | 0,58022 | 0,01784 | 0,06181 | 0,03664 | 62.95810 | 0,01980 | 0,04852 |
MAGRO | filmtrust | 62434 | 91 | 0,91849 | 0,44851 | 0,61083 | 0,54557 | 16.67990 | 0,34019 | 0,63021 |
Classificação do usuárioKNN | filmtrust | 1154 | 229 | 0,90752 | 0,41616 | 0,57525 | 0,51393 | 12.90921 | 0,32891 | 0,60152 |
VBPR | produto | 184473 | 15304 | 0,54336 | 0,00920 | 0,03522 | 0,01883 | 45.05101 | 0,01037 | 0,02266 |
WBPR | filmtrust | 20705 | 183 | 0,78072 | 0,24647 | 0,33373 | 0,30442 | 17.18609 | 0,25000 | 0,35516 |
WRMF | filmtrust | 482 | 158 | 0,90616 | 0,43278 | 0,58284 | 0,52480 | 15.17956 | 0,32918 | 0,60780 |
RankGeoFM | QuatroQuadrado | 368436 | 1093 | 0,72708 | 0,05485 | 0,24012 | 0,11057 | 37.50040 | 0,07866 | 0,08640 |
SBPR | filmtrust | 41481 | 247 | 0,91010 | 0,41189 | 0,56480 | 0,50726 | 15.67905 | 0,32440 | 0,59699 |
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | CUA | MAPA | MRR | NDCG | Novidade | Precisão | Lembrar |
---|---|---|---|---|---|---|---|---|---|---|
Classificação EFM | dc_denso | 2066 | 2276 | 0,61271 | 0,01611 | 0,04631 | 0,04045 | 53.26140 | 0,02387 | 0,07357 |
TFIDF | instrumentos_musicais | 942 | 1085 | 0,52756 | 0,01067 | 0,01917 | 0,01773 | 72.71228 | 0,00588 | 0,03103 |
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | MAE | EMA | MSE |
---|---|---|---|---|---|---|
ConstantGuess | filmtrust | 137 | 45 | 1.05608 | 1,00000 | 1.42309 |
Média Global | filmtrust | 60 | 13 | 0,71977 | 0,77908 | 0,85199 |
ItemMédia | filmtrust | 59 | 12 | 0,72968 | 0,97242 | 0,86413 |
ItemCluster | filmtrust | 471 | 41 | 0,71976 | 0,77908 | 0,85198 |
Adivinhação Aleatória | filmtrust | 38 | 8 | 1,28622 | 0,99597 | 2.47927 |
Média do usuário | filmtrust | 35 | 9 | 0,64618 | 0,97242 | 0,70172 |
UserCluster | filmtrust | 326 | 45 | 0,71977 | 0,77908 | 0,85199 |
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | MAE | EMA | MSE |
---|---|---|---|---|---|---|
Avaliação de Aspecto | filmtrust | 220 | 5 | 0,65754 | 0,97918 | 0,71809 |
ASVDPlusPlus | filmtrust | 5631 | 8 | 0,71975 | 0,77921 | 0,85196 |
MF tendencioso | filmtrust | 92 | 6 | 0,63157 | 0,98387 | 0,66220 |
BHFreeRating | filmtrust | 6667 | 76 | 0,71974 | 0,77908 | 0,85198 |
BPMF | filmtrust | 25942 | 52 | 0,66504 | 0,98465 | 0,70210 |
Classificação BUCMR | filmtrust | 1843 | 30 | 0,64834 | 0,99102 | 0,67992 |
CCD | produto | 15715 | 9 | 0,96670 | 0,93947 | 1,62145 |
FFM | filmtrust | 5422 | 6 | 0,63446 | 0,98413 | 0,66682 |
FMALS | filmtrust | 1854 | 5 | 0,64788 | 0,96032 | 0,73636 |
fmsgd | filmtrust | 3496 | 10 | 0,63452 | 0,98426 | 0,66710 |
GPLSA | filmtrust | 2567 | 7 | 0,67311 | 0,98972 | 0,79883 |
IRRG | filmtrust | 40284 | 6 | 0,64766 | 0,98777 | 0,73700 |
ItemKNNRating | filmtrust | 2052 | 27 | 0,62341 | 0,95394 | 0,67312 |
LDCC | filmtrust | 8650 | 84 | 0,66383 | 0,99284 | 0,70666 |
LORMA | filmtrust | 16618 | 82 | 0,64930 | 0,96591 | 0,76067 |
MFALS | filmtrust | 2944 | 5 | 0,82939 | 0,94549 | 1.30547 |
NMF | filmtrust | 1198 | 8 | 0,67661 | 0,96604 | 0,83493 |
PMF | filmtrust | 215 | 7 | 0,72959 | 0,98165 | 0,99948 |
RBM | filmtrust | 19551 | 270 | 0,74484 | 0,98504 | 0,88968 |
RFRec | filmtrust | 16330 | 54 | 0,64008 | 0,97112 | 0,69390 |
SVDPlusPlus | filmtrust | 452 | 26 | 0,65248 | 0,99141 | 0,68289 |
URP | filmtrust | 1514 | 25 | 0,64207 | 0,99128 | 0,67122 |
Classificação KNN do usuário | filmtrust | 1121 | 135 | 0,63933 | 0,94640 | 0,69280 |
RSTE | filmtrust | 4052 | 10 | 0,64303 | 0,99206 | 0,67777 |
SocialMF | filmtrust | 918 | 13 | 0,64668 | 0,98881 | 0,68228 |
SoRec | filmtrust | 1048 | 10 | 0,64305 | 0,99232 | 0,67776 |
SoReg | filmtrust | 635 | 8 | 0,65943 | 0,96734 | 0,72760 |
TempoSVD | filmtrust | 11545 | 36 | 0,68954 | 0,93326 | 0,87783 |
ConfiarMF | filmtrust | 2038 | 7 | 0,63787 | 0,98985 | 0,69017 |
Confiar em SVD | filmtrust | 12465 | vinte e dois | 0,61984 | 0,98933 | 0,63875 |
Regra de Associação | filmtrust | 2628 | 195 | 0,90853 | 0,41801 | 0,57777 |
PersonalidadeDiagnóstico | filmtrust | 45 | 642 | 0,72964 | 0,76620 | 1.03071 |
PrankD | filmtrust | 3321 | 170 | 0,74472 | 0,22894 | 0,32406 |
SlopeOne | filmtrust | 135 | 28 | 0,63788 | 0,96175 | 0,71057 |
nome | Conjunto de dados | treinamento (milissegundos) | Previsão (milissegundos) | MAE | EMA | MSE |
---|---|---|---|---|---|---|
Classificação EFMR | dc_denso | 659 | 8 | 0,61546 | 0,85364 | 0,78279 |
HFT | instrumentos_musicais | 162753 | 13 | 0,64272 | 0,94886 | 0,81393 |
TópicoMFAT | instrumentos_musicais | 6907 | 7 | 0,61896 | 0,98734 | 0,72545 |
TópicoMFMT | instrumentos_musicais | 6323 | 7 | 0,61896 | 0,98734 | 0,72545 |
nome | pergunta | Descrição/tese |
---|---|---|
Adivinhação Aleatória | Classificação de classificação | palpite aleatório |
Mais populares | Classificação | mais popular |
ConstantGuess | Avaliação | suposição constante |
Média Global | Avaliação | média global |
ItemMédia | Avaliação | Média de itens |
ItemCluster | Avaliação | Agrupamento de itens |
Média do usuário | Avaliação | usuário médio |
UserCluster | Avaliação | Clustering de usuários |
nome | pergunta | Descrição/tese |
---|---|---|
AspectModel | Classificação de classificação | Modelos de classes latentes para filtragem colaborativa |
BHLivre | Classificação de classificação | Equilibrando a precisão da previsão e da recomendação: fatores latentes hierárquicos para dados de preferência |
BUCM | Classificação de classificação | Modelagem de seleção e relevância de itens para recomendações precisas |
ItemKNN | Classificação de classificação | Filtragem colaborativa baseada em itens |
UsuárioKNN | Classificação de classificação | Filtragem colaborativa baseada no usuário |
AHr | Classificação | Melhorando a aprendizagem em pares para recomendação de itens a partir de feedback implícito |
RPB | Classificação | BPR: classificação bayesiana personalizada de feedback implícito |
CliMF | Classificação | CLIMF: aprendendo a maximizar a classificação recíproca com filtragem colaborativa menos é mais |
EALS | Classificação | Filtragem colaborativa para conjunto de dados de feedback implícito |
FISMO | Classificação | FISM: Modelos de similaridade de itens fatorados para sistemas de recomendação Top-N |
GBPR | Classificação | GBPR: Classificação Bayesiana Personalizada Baseada em Preferência de Grupo para Filtragem Colaborativa de Uma Classe |
HMMForCF | Classificação | Um modelo oculto de Markov Objetivo: uma classe para o modelo, incluindo parâmetros |
ItemBigram | Classificação | Modelagem de tópicos: além do saco de palavras |
Lambda FM | Classificação | LambdaFM: Aprendendo a classificação ideal com máquinas de fatoração usando substitutos Lambda |
LDA | Classificação | Alocação latente de Dirichlet para feedback implícito |
ListwiseMF | Classificação | Aprendizagem baseada em lista para classificação com fatoração de matriz para filtragem colaborativa |
APLSA | Classificação | Modelos semânticos latentes para filtragem colaborativa |
ClassificaçãoALS | Classificação | Alternando mínimos quadrados para classificação personalizada |
ClassificaçãoSGD | Classificação | Conjunto de filtragem colaborativa para classificação |
MAGRO | Classificação | SLIM: métodos lineares esparsos para sistemas de recomendação Top-N |
WBPR | Classificação | Classificação Bayesiana Personalizada para Itens Amostrados Não Uniformemente |
WRMF | Classificação | Filtragem colaborativa para conjuntos de dados de feedback implícitos |
Classificação-GeoFM | Classificação | Rank-GeoFM: Um método de fatoração geográfica baseado em classificação para recomendação de pontos de interesse |
SBPR | Classificação | Aproveitando as conexões sociais para melhorar a classificação personalizada para filtragem colaborativa |
Regra de Associação | Classificação | Um algoritmo de recomendação usando regras de associação multinível |
PrankD | Classificação | Classificação personalizada com diversidade |
AssimétricoSVD++ | Avaliação | A fatoração atende a vizinhança: um modelo de filtragem colaborativa multifacetada |
Gravação automática | Avaliação | AutoRec: Autoencoders atendem à filtragem colaborativa |
BPMF | Avaliação | Fatoração de Matriz Probabilística Bayesiana usando Cadeia de Markov Monte Carlo |
CCD | Avaliação | Filtragem Colaborativa Paralela em Grande Escala para o Prêmio Netflix |
FFM | Avaliação | Máquinas de fatoração com reconhecimento de campo para previsão de CTR |
GPLSA | Avaliação | Filtragem Colaborativa via Análise Semântica Latente Probabilística Gaussiana |
IRRG | Avaliação | Explorando relacionamentos implícitos de itens para sistemas de recomendação |
MFALS | Avaliação | Filtragem Colaborativa Paralela em Grande Escala para o Prêmio Netflix |
NMF | Avaliação | Algoritmos para fatoração de matrizes não negativas |
PMF | Avaliação | PMF: Fatoração de Matriz Probabilística |
RBM | Avaliação | Máquinas Boltzman restritas para filtragem colaborativa |
RF-Rec | Avaliação | RF-Rec: cálculo rápido e preciso de recomendações com base em frequências de classificação |
SVD++ | Avaliação | A fatoração atende a vizinhança: um modelo de filtragem colaborativa multifacetada |
URP | Avaliação | Perfil de avaliação do usuário: um modelo LDA para previsão de classificação |
RSTE | Avaliação | Aprendendo a recomendar com o Social Trust Ensemble |
SocialMF | Avaliação | Uma técnica de fatoração de matrizes com propagação de confiança para recomendação em redes sociais |
SoRec | Avaliação | SoRec: recomendação social usando fatoração de matriz probabilística |
SoReg | Avaliação | Sistemas de recomendação com regularização social |
TempoSVD++ | Avaliação | Filtragem Colaborativa com Dinâmica Temporal |
ConfiarMF | Avaliação | Filtragem Colaborativa Social por Confiança |
Confiar em SVD | Avaliação | TrustSVD: filtragem colaborativa com influência explícita e implícita da confiança do usuário e das classificações de itens |
PersonalidadeDiagnóstico | Avaliação | Uma breve introdução ao Diagnóstico de Personalidade |
SlopeOne | Avaliação | Preditores Slope One para filtragem colaborativa baseada em classificação on-line |
nome | pergunta | Descrição/tese |
---|---|---|
EFM | Classificação de classificação | Modelos de fatores explícitos para recomendação explicável com base na análise de sentimento em nível de frase |
TF-IDF | Classificação | Termo frequência-frequência inversa do documento |
HFT | Avaliação | Fatores ocultos e tópicos ocultos: entendendo as dimensões de classificação com texto de revisão |
TópicoMF | Avaliação | TopicMF: Explorando simultaneamente classificações e análises para recomendação |
JStarCraft RNS segue o protocolo Apache 2.0, e todos os trabalhos derivados baseados nele pertencem ao autor do trabalho derivado.
autor | Hong Zhaohua |
---|---|
[email protected], [email protected] |
Agradecimentos especiais à equipe LibRec e ao grupo QQ do sistema de recomendação (274750470) por seu apoio e ajuda na recomendação.
Agradecimentos especiais a Lu Xugang pelo apoio e ajuda na busca.
Agradecimentos especiais a Hangzhou Chengzi Information Technology Co., Ltd. pela doação para o projeto JStarCraft.