1 people like it.

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
Raw view Test code New version

More information

Link:http://fssnip.net/mM
Posted:11 years ago
Author:
Tags: