Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

RecQ

Released by School of Software Engineering, Chongqing University ##Introduction## RecQ is a Python library for recommender systems (Python 2.7.x). It implements a suit of state-of-the-art recommendations. To run RecQ easily (no need to setup packages used in RecQ one by one), the leading open data science platform Anaconda is strongly recommended. It integrates Python interpreter, common scientific computing libraries (such as Numpy, Pandas, and Matplotlib), and package manager, all of them make it a perfect tool for data science researcher. ##Architecture of RecQ##

RecQ Architecture

To design it exquisitely, we brought some thoughts from another recommender system library LibRec, which is implemented with Java.

##Features##

  • Cross-platform: as a Python software, RecQ can be easily deployed and executed in any platforms, including MS Windows, Linux and Mac OS.
  • Fast execution: RecQ is based on the fast scientific computing libraries such as Numpy and some light common data structures, which make it runs much faster than other libraries based on Python.
  • Easy configuration: RecQ configs recommenders using a configuration file.
  • Easy expansion: RecQ provides a set of well-designed recommendation interfaces by which new algorithms can be easily implemented.

##How to Run it##

  • 1.Configure the xx.conf file in the directory named config. (xx is the name of the algorithm you want to run)
  • 2.Run the main.py in the project, and then input following the prompt.

##How to Configure it## ###Essential Options

<td>Set the path to input dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>Set the path to input social dataset. Format: each row separated by empty, tab or comma symbol. </td>
<td>-columns: (user, item, rating) columns of rating data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>-columns: (trustor, trustee, weight) columns of social data are used;
-header: to skip the first head line when reading data<br>
</td>
<td>Set the recommender to use. <br>
</td>
<td>Main option: -testSet;<br>
-testSet -f path/to/test/file;<br>
</td>
<td>Main option: whether to output recommendation results<br>
-dir path: the directory path of output results.
</td>
EntryExampleDescription
ratingsD:/MovieLens/100K.txt
socialD:/MovieLens/trusts.txt
ratings.setup-columns 0 1 2
social.setup-columns 0 1 2
recommenderUserKNN/ItemKNN/SlopeOne/etc.
evaluation.setup../dataset/FilmTrust/testset.txt
item.rankingoff -topN -1
<td>Main option: whether to do item ranking<br>
-topN: the length of the recommendation list for item recommendation, default -1 for full list; <br>
</td>
output.setupon -dir ./Results/

###Memory-based Options

similaritypcc/cosSet the similarity method to use. Options: PCC, COS;
num.shrinkage25Set the shrinkage parameter to devalue similarity value. -1: to disable simialrity shrinkage.
num.neighbors30Set the number of neighbors used for KNN-based algorithms such as UserKNN, ItemKNN.

###Model-based Options

num.factors5/10/20/numberSet the number of latent factors
num.max.iter100/200/numberSet the maximum number of iterations for iterative recommendation algorithms.
learnRate-init 0.01 -max 1-init initial learning rate for iterative recommendation algorithms;
-max: maximum learning rate (default 1);
reg.lambda-u 0.05 -i 0.05 -b 0.1 -s 0.1 -u: user regularizaiton; -i: item regularization; -b: bias regularizaiton; -s: social regularization
##How to extend it## * 1.Make your new algorithm generalize the proper base class. * 2.Rewrite some of the following functions as needed. - **readConfiguration()** - **printAlgorConfig()** - **initModel()** - **buildModel()** - **saveModel()** - **loadModel()** - **predict()**

About

RecQ: A Python Library for Recommender Systems

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages