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))