Hi

I want to find matrix inverse of (XTranspose * X). PFB my code.

This code does not work for even slight larger dataset. Please help me if
the approach is correct.

   val sqlQuery = "SELECT column1,column2 ,column3 FROM " + tableName
      val   matrixDF` = sqlContext.sql(sqlQuery)


    var identityArray = Array.fill[String](numberOfRows)("1.0") // array
that contains 1 for calculating the intercept
    val collectionString =
Array.ofDim[String](numberOfColumns,numberOfRows) // store the collection
as string
    val independentCollectionDoubleType =
Array.ofDim[Double](numberOfColumns,numberOfRows) // store the collection
as double

    //concatenate the values of all the as string type
    for (i <- 0 to numberOfColumns - 1) {
      val matrixStringDF = matrixDF.map(_.get(i).toString)
      val matrixArray = matrixStringDF.collect()
      identityArray = Array.concat(identityArray, matrixArray)
      collectionString(i) = matrixArray
    }

    val valuesDouble = identityArray.map(value => value.toDouble) //Array
of all the  values and identity as an array of double
    val valuesMatrix = Matrices.dense(numberOfRows, numberOfColumns + 1,
valuesDouble) //matrix
    val transposeMatrix = valuesMatrix.transpose // transpose of  matrix
    val transposeMatrix_matrix =
transposeMatrix.multiply(valuesMatrix.asInstanceOf[DenseMatrix]) //
transpose of  matrix * matrix
    val transposeMatrix_matrixAsArray = transposeMatrix_matrix.values //
pdt as array
    val transposeMatrix_matrixBreeze = new
linalg.DenseMatrix(transposeMatrix_matrix.numRows,
transposeMatrix_matrix.numCols, transposeMatrix_matrixAsArray, 0) //breeze
dense matrix of the product
    val inverse = linalg.inv(transposeMatrix_matrixBreeze)




-- 
Thanks and Regards
        Arun

Reply via email to