Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
@tensorscript/ts-mlr
Advanced tools
Multiple Linear Regression with Tensorflow
$ npm i @tensorscript/ts-mlr
Test against the Portland housing price dataset
import { MultipleLinearRegression, } from '@tensorscript/ts-mlr';
import ms from 'modelscript';
function scaleColumnMap(columnName) {
return {
name: columnName,
options: {
strategy: 'scale',
scaleOptions: {
strategy:'standard'
}
}
}
}
async function main(){
const housingdataCSV = await ms.csv.loadCSV('./test/mock/data/portland_housing_data.csv', {
colParser: {
sqft: 'number',
bedrooms: 'number',
price: 'number',
}
});
/*
housingdataCSV = [
{ sqft: 2104, bedrooms: 3, price: 399900 },
{ sqft: 1600, bedrooms: 3, price: 329900 },
...
{ sqft: 1203, bedrooms: 3, price: 239500 }
]
*/
const DataSet = new ms.DataSet(housingdataCSV);
DataSet.fitColumns({
columns: [
'sqft',
'bedrooms',
'price',
].map(scaleColumnMap),
returnData:true,
});
const independentVariables = [ 'sqft', 'bedrooms',];
const dependentVariables = [ 'price', ];
const x_matrix = DataSet.columnMatrix(independentVariables);
const y_matrix = DataSet.columnMatrix(dependentVariables);
/* x_matrix = [
[2014, 3],
[1600, 3],
];
y_matrix = [
[399900],
[329900],
];
const y_vector = ms.util.pivotVector(y_matrix)[ 0 ];// not used but just illustrative
// y_vector = [ 399900, 329900]
*/
const testSqft = DataSet.scalers.get('sqft').scale(1650);
const testBedrooms = DataSet.scalers.get('bedrooms').scale(3);
const input_x = [
testSqft,
testBedrooms,
]; // input_x: [ -0.4412732005944351, -0.2236751871685913 ]
const tfMLR = new MultipleLinearRegression();
const model = await tfMLR.train(x_matrix, y_matrix);
const scaledPrediction = await tfMLR.predict(input_x); // [ -0.3785287367962629 ]
const prediction = DataSet.scalers.get('price').descale(scaledPrediction); // prediction: 293081.4643348962
}
main();
This MLR module give you a similar ml.js interface for machine learning
// Similarly with ml.js
import ms from 'modelscript';
const MLR = ms.ml.Regression.MultivariateLinearRegression;
const regression = new MLR(x_matrix, y_matrix);
const MLJSscaledPrediction = regression.predict(input_x); //[ -0.3785287367962629 ],
const MLJSprediction = DataSet.scalers.get('price').descale(MLJSscaledPrediction); // prediction: 293081.4643348962
$ npm i
$ npm test
Fork, write tests and create a pull request!
As of Node 8, ES modules are still used behind a flag, when running natively as an ES module
$ node --experimental-modules my-machine-learning-script.mjs
# Also there are native bindings that require Python 2.x, make sure if you're using Andaconda, you build with your Python 2.x bin
$ npm i --python=/usr/bin/python
MIT
FAQs
Multiple linear regression with TensorFlow
We found that @tensorscript/ts-mlr demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.