packages feed

dataframe-0.3.1.2: app/Main.hs

-- Useful Haskell extensions.
-- Allow string literal to be interpreted as any other string type.

{-# LANGUAGE OverloadedStrings #-}

import qualified DataFrame as D -- import for general functionality.
import qualified DataFrame.Functions as F
import DataFrame ((|>))

import Data.Function
import qualified Data.List as L
import Data.Maybe
import System.Environment

main :: IO ()
main = do
    (d:b:_) <- fmap (map read) getArgs
    df <- D.readCsv "./data/housing.csv"
    let (Right e) = F.synthesizeFeatureExpr "median_house_value" d b (df |> D.exclude ["ocean_proximity", "total_bedrooms", "median_income"])

    print e

    mapM_ print (L.sortBy (flip compare `on` snd) (correlations (df  |> D.derive "n" e)))

correlations d = map (`correlationWithHouseValue` d) (D.columnNames d)
    where
        correlationWithHouseValue columnName d = (columnName, fromMaybe 0 (D.correlation columnName "median_house_value" d))