{"_id":"jonatanai","_rev":"29-9d452153888ebcf2989425afa42c745e","name":"jonatanai","dist-tags":{"latest":"0.0.15"},"versions":{"0.0.14":{"name":"jonatanai","version":"0.0.14","keywords":["machine learning","math","matrix","linear algebra"],"license":"CC BY-NC-ND 4.0","_id":"jonatanai@0.0.14","maintainers":[{"name":"jonatanvm","email":"jonatanvmartens@gmail.com"}],"homepage":"https://github.com/jonatanai/jonatanai#readme","bugs":{"url":"https://github.com/jonatanai/jonatanai/issues"},"dist":{"shasum":"4d7ebbfce98f256ae856437a8daaa70b48220e34","tarball":"https://registry.npmjs.org/jonatanai/-/jonatanai-0.0.14.tgz","fileCount":5,"integrity":"sha512-7wwZk+rQMz0cf5eSVR2EcjETPrumuc+o1CDPEUhjIYHDrr7+j+0DgW8GMy9T3d4OOJR1i0uBisz0AwEbgCAmiA==","signatures":[{"sig":"MEUCIQDPJcpmtyzBJfHkIgHsQ95SVJmwnzzT6S3yHA6VtSTuCAIgA+AxaOKt4fJLnULIDB5vqZYqDgi2PSxS2ow2/KYSQgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34386,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAAIaCRA9TVsSAnZWagAAlqMQAIEUCvaDgf5GvHCOP4Jt\npasfINq9gcghbvFe+aSwzNP1GSeGakM7N1KDvTSEqmm5EeIoAD79YxgGWi9p\nx0SIzCEIGFng9E4CBgH9lZ5qm7Oci/HlldJpbd13gd5PvXTORuLmbOTLQPK1\n2/n86Ajq3DkTM/P3NDMQ5CglMlHJ8/s/amtKU5aWw2UsCWPfNmmiYdL58Ccs\n4fA89a6uIr0tVMTvTFwx7eKJwQ4FWK57zcSwt7z1gGF/TXemDWszjVPRhS0i\nPEd+Z/c5/ZhLD62OyW4xv+phkpI99Tj5ys1EI/hdNASMUiaO5eZ8BTOGzQBY\nOrhpl0M8t2/Tbta+V8tettBO51YitHlQuiMXGsTXnnRAMhLbFbbEQYnF5n/n\nYBblzis97jfemr7hUmBljHovtQjs84gjg/MtALNIHJyhZQQtfXLpomIskVwZ\nTGAv1FeJyqRJAW6OCUl9rck9BblF2iqpw5RQOYeFSkIWO55LrOTDmlLWu/f5\nP2G0nSWyrKXea4SFHqUU/3lNWqOkeOcnOB6ivirugYiYw8NB81bKhG74G5Oh\n1IPIhtnZjH65xvlgEykuI5t31yngkLR2zBRADLO21Ra1FnCrS+xTIMY4H5gC\n/bmNynz5LbFUgGj+YXBeL/wK4O0FfJEYBh3bZy4ju62tSkrWedZaSz3rdBZW\n3l14\r\n=Jdug\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"9552b567ae3d0ce7457990baa1a8aab02212e31b","scripts":{"test":"mocha","build":"tsc --build --clean && tsc && uglifyjs dist/index.js -o dist/index.js"},"_npmUser":{"name":"jonatanvm","email":"jonatanvmartens@gmail.com"},"repository":{"url":"git+https://github.com/jonatanai/jonatanai.git","type":"git"},"_npmVersion":"8.1.2","description":"A js machine learning library.","directories":{"src":"src","dist":"dist","test":"src"},"_nodeVersion":"16.13.2","_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^8.8.0","ts-node":"^10.4.0","typescript":"^4.5.5"},"_npmOperationalInternal":{"tmp":"tmp/jonatanai_0.0.14_1644167706286_0.1265853271277051","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.15":{"name":"jonatanai","version":"0.0.15","keywords":["machine learning","math","matrix","linear algebra"],"license":"CC BY-NC-ND 4.0","_id":"jonatanai@0.0.15","maintainers":[{"name":"jonatanvm","email":"jonatanvmartens@gmail.com"}],"homepage":"https://github.com/jonatanai/jonatanai#readme","bugs":{"url":"https://github.com/jonatanai/jonatanai/issues"},"dist":{"shasum":"2f420d809cecdb3ca4f6627764a7dc1462f8f469","tarball":"https://registry.npmjs.org/jonatanai/-/jonatanai-0.0.15.tgz","fileCount":5,"integrity":"sha512-yVwgupOyw7HJxRRYvCJu+XiF1oTGMBkHHaRPgqDXXA04siRC/cLBp8lB1W3wTtfTRFp8s1HTsqBmI2E0Uz2fhQ==","signatures":[{"sig":"MEUCIE265JkWOe18r+l+fZZhs7wChio4QvR6f6dnVqln20XRAiEAuNeU48mkJido5AjrgZ9+9SdRKMiSs93E9QyIiBU1OVs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiB7KhCRA9TVsSAnZWagAATyQQAJP/B0qsnDxU6avhw/qY\nM2/0uy3EN0Kuq/ZAIxzfbUTC3R+zWvvRzh78zNwvhC2cDvsDpdpkJwtcdyVN\nhDPwjdac5/V2uapsjugRmN1RORXmr3UCuuZPha16sb5dIvjQtLbFG26Ap59F\n+UucidGHfCiI1Mlw6hE8akZazx7lwQXGsF1Nn0jekdGWtAWdPd+Mwn32g4To\nqgbtP/A6qOwBfV3CMD0l5Vc/XLejX0LDt8olYnBSXyVZliLWc3GwkNiafzr7\nsBVD5PSgUAOKavQoJpgmzMMLFeEvUGgWk8YnYecgXwz3Taze+5Y1mriTet5x\n5itvXowQPHiiBJvIOZh13fgmLuzOaFU4oAbC+utpaeZmKYDZYLBRqKxbGiRV\nzi8vJ1G8S/YFq3B/2if7pylvufsRBvU0y0V6MXpkq7e5v2UxlnlV/CNDcUkq\nb9yuqX6YP5yCbts1/9sbOcGTeOSwSrG0PuDoC6v20w2J3paFb0gpvXTJiilA\n0OVhsZiyYc2u0a/sniaAN9hbtFl74jUEm1I/1GcMfodUIB6ucmF3YC9DxHWD\nCGHBqliVaOyVydMMCcIBTCnG5Sy9L539Lh+VVq3G6+lC15104vi1bl95O9VD\nSAr2VUZE6YIg5soMijJEe1YAvcyJ5v0CmV+WP+Fs0QCBcjLIxtzLtF0pmwOb\noeiN\r\n=2/JQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","gitHead":"adf0bdcf920019b18f02f9f3e6af2fa6b0c5f1af","scripts":{"test":"mocha","build":"tsc --build --clean && tsc && uglifyjs dist/index.js -o dist/index.js"},"_npmUser":{"name":"jonatanvm","email":"jonatanvmartens@gmail.com"},"repository":{"url":"git+https://github.com/jonatanai/jonatanai.git","type":"git"},"_npmVersion":"8.3.1","description":"A js machine learning library.","directories":{"src":"src","dist":"dist","test":"src"},"_nodeVersion":"16.14.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.2.0","eslint":"^8.8.0","ts-node":"^10.4.0","typescript":"^4.5.5","@types/mocha":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/jonatanai_0.0.15_1644671648925_0.6554909548130055","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2022-02-05T15:27:06.634Z","modified":"2024-09-23T23:57:09.075Z","0.0.1":"2022-02-05T15:27:06.851Z","0.0.2":"2022-02-05T16:47:43.388Z","0.0.3":"2022-02-05T19:10:36.125Z","0.0.4":"2022-02-05T19:26:39.670Z","0.0.5":"2022-02-05T21:25:22.445Z","0.0.6":"2022-02-05T21:48:43.755Z","0.0.7":"2022-02-06T08:57:10.943Z","0.0.8":"2022-02-06T11:50:11.484Z","0.0.9":"2022-02-06T15:23:51.092Z","0.0.10":"2022-02-06T16:31:07.764Z","0.0.11":"2022-02-06T16:41:50.488Z","0.0.12":"2022-02-06T16:46:15.881Z","0.0.13":"2022-02-06T17:10:53.412Z","0.0.14":"2022-02-06T17:15:06.437Z","0.0.15":"2022-02-12T13:14:09.075Z"},"bugs":{"url":"https://github.com/jonatanai/jonatanai/issues"},"license":"CC BY-NC-ND 4.0","homepage":"https://github.com/jonatanai/jonatanai#readme","keywords":["machine learning","math","matrix","linear algebra"],"repository":{"url":"git+https://github.com/jonatanai/jonatanai.git","type":"git"},"description":"A js machine learning library.","maintainers":[{"name":"jonatanvm","email":"jonatanvmartens@gmail.com"}],"readme":"# Machine learning in Javascript\n\n## Install\n\n```\nnpm i jonatanai --save\n```\n\n## Usage\n\n### Import\n\n#### ES6\n```ecma script level 6\nimport { Matrix, LinearRegression, append, dot, determinant, inverse, LUPDecompose, prepend, solve, transpose } from 'jonatanai'\n```\n#### CommonJS\n```javascript\nconst { Matrix, LinearRegression, append, dot, determinant, inverse, LUPDecompose, prepend, solve, transpose } = require('jonatanai')\n\n```\n\n### Matrix from 2d array\n\n```\nlet a = [[2, 2], [2, 2]]\nnew Matrix([[2, 2], [2, 2]])\nMatrix.from([[2, 2], [2, 2]])\n```\n\n### Matrix from 2d array\n\n```\nlet a = [[2, 2], [2, 2]]\nnew Matrix(a)\nMatrix.from(a)\na[0][0] = 3 // Will change the matrices. If this is not desired do new Matrix(a, true)\n```\n\n### Empty matrix\n\n```\nMatrix.empty(2) // = [[undefined, undefined], [undefined, undefined]]\nMatrix.empty(2, 3) // = [[undefined, undefined], [undefined, undefined], [undefined, undefined]]\n```\n\n### Matrix of ones\n\n```\nMatrix.ones(2) // = [[1, 1], [1, 1]]\nMatrix.ones(2, 3) // = [[0, 0], [0, 0], [0, 0]]\n```\n\n\n### Zero matrix\n\n```\nMatrix.zeros(2) // = [[0, 0], [0, 0]]\nMatrix.zeros(2, 3) // = [[0, 0], [0, 0], [0, 0]]\n```\n\n### Identity matrix\n\n```\nMatrix.identity(3) // = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]\n```\n\n### Matrix multiplication\n```\nlet a = [[2, 2], [2, 2]]\nlet b = [[2, 2], [2, 2]]\ndot(a, b) // = [[8, 8], [8, 8]]\n\nconst m1 = new Matrix(a)\nconst m2 = new Matrix(b)\n\nm1.dot(m2) // = [[8, 8], [8, 8]]\n\n```\n### Transpose\n\n```\nconst a = [[1,2],[3,4],[5,6]]\n\ntranspose(a) // [[1,3,5],[2,4,6]]\nMatrix.from(a).transpose() // [[1,3,5],[2,4,6]]\nMatrix.from(a).T // [[1,3,5],[2,4,6]]\n```\n\n### Matrix determinant\n\n```\ndeterminant([[1, 2], [3, 4]]) // -2\ndeterminant([[1, 3, 5, 9], [1, 3, 1, 7], [4, 3, 9, 7], [5, 2, 0, 9]]) // -376\n```\n\n### Matrix inverse\n\n```\ninverse([[1, 2], [3, 4]]) // [[-2, 1], [3 / 2, -1 / 2]]\n\ninverse([[1, 3, 5, 9], [1, 3, 1, 7], [4, 3, 9, 7], [5, 2, 0, 9]])\n// = [\n//  [-13 / 47, 2 / 47, 7 / 47, 6 / 47],\n//  [-5 / 8, 7 / 8, 1 / 4, -1 / 4],\n//  [39 / 376, -56 / 376, 13 / 188, -9 / 188],\n//  [55 / 188, -41 / 188, -13 / 94, 9 / 94]\n//]\n```\n\n### Prepend\n\n```\nconst v = [0,0,0]\nconst a = [\n [1,2,3],\n [4,5,6],\n [7,8,9]\n]\nprepend(a,v,0)\n// const a = [\n//  [0,0,0],\n//  [1,2,3],\n//  [4,5,6],\n//  [7,8,9]\n// ]\nprepend(a,v,1)\n// const a = [\n//  [0,1,2,3],\n//  [0,4,5,6],\n//  [0,7,8,9]\n// ]\n```\n\n### Append\n\n```\nconst v = [0,0,0]\nconst a = [\n [1,2,3],\n [4,5,6],\n [7,8,9]\n]\nappend(a,v,0)\n// const a = [\n//  [1,2,3],\n//  [4,5,6],\n//  [7,8,9],\n//  [0,0,0]\n// ]\nappend(a,v,1)\n// const a = [\n//  [1,2,3,0],\n//  [4,5,6,0],\n//  [7,8,9,0]\n// ]\n```\n\n### Add\n```\n    const m1 = Matrix.from([[1, 1], [1, 1]])\n    const m2 = Matrix.from([[1, 1], [1, 1]])\n    m1.add(m2) // [[2, 2], [2, 2]]\n```\n\n### Subtract\n```\n    const m1 = Matrix.from([[2, 2], [2, 2]])\n    const m2 = Matrix.from([[1, 1], [1, 1]])\n    m1.subtract(m2) // [[1, 1], [1, 1]]\n```\n\n\n### Norm\n```\n    let m = Matrix.from([[1, 1], [1, 1]])\n    m.norm() // 2\n\n    m = Matrix.from([[2, 2], [2, 2]])\n    m.norm() // 4\n\n    m = Matrix.from([[3, 3], [3, 3]])\n    m.norm() // 6\n```\n\n\n### Solve matrix equations\n\n```\nlet A = [[2, 3, -2], [1, -1, -3], [1, 5, 2]]\nlet B = [7, 5, 10]\nsolve(A, B) // [99, -35, 43]\n```\n\n### Linear regression\n\n```\nconst clf = new LinearRegression()\nconst X = [\n  [0.18, 0.89],\n  [1.0, 0.26],\n  [0.92, 0.11],\n  [0.07, 0.37],\n  [0.85, 0.16],\n  [0.99, 0.41],\n  [0.87, 0.47],\n]\nconst y = [\n  [109.85],\n  [155.72],\n  [137.66],\n  [76.17],\n  [139.75],\n  [162.6],\n  [151.77],\n]\nconst X_test = [\n  [0.49, 0.18],\n  [0.57, 0.83],\n  [0.56, 0.64],\n  [0.76, 0.18],\n]\nconst y_test = [\n  [105.21455835],\n  [142.67095131],\n  [132.93605469],\n  [129.70175405],\n]\nclf.train(lr_X, lr_y)\nclf.predict(lr_X_test) // === y_test\n```\n\n### Copy\n\nReturn a new copy of the matrix shorthand for `new Matrix(m.toArry())`\n\n```\nconst a = [[1,2],[3,4],[5,6]]\n\nMatrix.from(a).copy() // [[1,2],[3,4],[5,6]]\n```\n\n### Size\n\n```\nm = Matrix.ones(4, 3)\nm.size() // = [4,3]\n```\n\n### toString\n\n```\nm = Matrix.fill(3, 3, 4)\nm.toString()\n# [4,4,4]\n# [4,3,3]\n# [4,4,4]\n```\n## License\n\n[CC BY-NC-ND 4.0](./LICENSE)\n","readmeFilename":"README.md"}