1 people like it.
Like the snippet!
Linear Regression
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
open MathNet.Numerics
open MathNet.Numerics.LinearAlgebra
open MathNet.Numerics.LinearAlgebra.Double
let linearModel (theta_vec:DenseMatrix) (data_mat:DenseMatrix) =
let dataWithoutLabel = (DenseMatrix.init data_mat.RowCount 1 (fun i j -> 1.0)).Append(DenseMatrix.init data_mat.RowCount (data_mat.ColumnCount-1) (fun i j -> data_mat.[i,j]))
DenseMatrix.OfMatrix(dataWithoutLabel * theta_vec)
//Define Cost Function
let j (model:DenseMatrix) (theta_vec:DenseMatrix) (data_mat:DenseMatrix) =
let label = DenseMatrix.init data_mat.RowCount 1 (fun i j -> data_mat.[i,(data_mat.ColumnCount-j)])
let m : float = 50.0 //Size of data
(1.0 /(2.0 * m) * Matrix.sum((model - label) |> Matrix.map(fun value -> value ** 2.0)))
let cost:float = j linearModel denseTheta denseData
|
namespace MathNet
namespace MathNet.Numerics
namespace MathNet.Numerics.LinearAlgebra
namespace MathNet.Numerics.LinearAlgebra.Double
val linearModel : theta_vec:DenseMatrix -> data_mat:DenseMatrix -> DenseMatrix
Full name: Script.linearModel
val theta_vec : DenseMatrix
Multiple items
type DenseMatrix =
inherit Matrix
new : storage:DenseColumnMajorMatrixStorage<float> -> DenseMatrix + 3 overloads
member Cholesky : unit -> Cholesky<float>
member Evd : ?symmetricity:Symmetricity -> Evd<float>
member FrobeniusNorm : unit -> float
member GramSchmidt : unit -> GramSchmidt<float>
member InfinityNorm : unit -> float
member IsSymmetric : unit -> bool
member L1Norm : unit -> float
member LU : unit -> LU<float>
member QR : ?method:QRMethod -> QR<float>
...
Full name: MathNet.Numerics.LinearAlgebra.Double.DenseMatrix
--------------------
DenseMatrix(storage: Storage.DenseColumnMajorMatrixStorage<float>) : unit
DenseMatrix(order: int) : unit
DenseMatrix(rows: int, columns: int) : unit
DenseMatrix(rows: int, columns: int, storage: float []) : unit
val data_mat : DenseMatrix
val dataWithoutLabel : DenseMatrix
property Matrix.RowCount: int
property Matrix.ColumnCount: int
DenseMatrix.OfMatrix(matrix: Matrix<float>) : DenseMatrix
val j : model:DenseMatrix -> theta_vec:DenseMatrix -> data_mat:DenseMatrix -> float
Full name: Script.j
val model : DenseMatrix
val label : obj
val m : float
Multiple items
val float : value:'T -> float (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.float
--------------------
type float = System.Double
Full name: Microsoft.FSharp.Core.float
--------------------
type float<'Measure> = float
Full name: Microsoft.FSharp.Core.float<_>
Multiple items
type Matrix =
inherit Matrix<float>
member Cholesky : unit -> Cholesky<float>
member CoerceZero : threshold:float -> unit
member ColumnAbsoluteSums : unit -> Vector<float>
member ColumnNorms : norm:float -> Vector<float>
member ColumnSums : unit -> Vector<float>
member ConjugateTranspose : unit -> Matrix<float>
member Evd : ?symmetricity:Symmetricity -> Evd<float>
member FrobeniusNorm : unit -> float
member GramSchmidt : unit -> GramSchmidt<float>
member InfinityNorm : unit -> float
...
Full name: MathNet.Numerics.LinearAlgebra.Double.Matrix
--------------------
type Matrix<'T (requires default constructor and value type and 'T :> IEquatable<'T> and 'T :> IFormattable and 'T :> ValueType)> =
member Add : scalar:'T -> Matrix<'T> + 3 overloads
member Append : right:Matrix<'T> -> Matrix<'T> + 1 overload
member At : row:int * column:int -> 'T + 1 overload
member Cholesky : unit -> Cholesky<'T>
member Clear : unit -> unit
member ClearColumn : columnIndex:int -> unit
member ClearColumns : [<ParamArray>] columnIndices:int[] -> unit
member ClearRow : rowIndex:int -> unit
member ClearRows : [<ParamArray>] rowIndices:int[] -> unit
member ClearSubMatrix : rowIndex:int * rowCount:int * columnIndex:int * columnCount:int -> unit
...
Full name: MathNet.Numerics.LinearAlgebra.Matrix<_>
val cost : float
Full name: Script.cost
More information