欢迎访问宙启技术站
智能推送

利用Python和Haskell进行数据分析的案例

发布时间:2023-12-09 09:21:35

1. 电影评分分析:

假设我们有一个电影评分数据集,其中包含每部电影的评分和评论数量。我们可以使用Python和Haskell进行数据分析,将评分和评论数量进行分析和可视化。首先,我们可以使用Python的pandas库加载数据集,并计算每部电影的平均评分和评论数量。

import pandas as pd

# 加载数据集
data = pd.read_csv('movies.csv')

# 计算每部电影的平均评分和评论数量
data['average_rating'] = data['rating'].mean()
data['num_reviews'] = data['reviews'].count()

# 查看数据集的前几行
print(data.head())

接下来,我们可以使用Haskell的DataFrames库加载数据集,并计算每部电影的平均评分和评论数量。

import Data.Csv
import Data.Vector (fromList)
import Data.ByteString.Lazy (readFile)

-- 定义电影数据的数据类型
data Movie = Movie { title :: String, rating :: Double, reviews :: Int }

-- 从CSV文件加载数据集
loadData :: FilePath -> IO (Either String (Vector Movie))
loadData path = do
    csvData <- readFile path
    return $ decodeByName csvData >>= \(h, v) -> return $ fromList $ map (\r -> Movie (head r) (read (r!!1) :: Double) (read (r!!2) :: Int)) $ toList v

-- 计算每部电影的平均评分和评论数量
analyzeData :: Vector Movie -> (Double, Int)
analyzeData movies = (meanRating, totalReviews)
    where
        totalReviews = sum $ map reviews $ toList movies
        meanRating = sum (map rating $ toList movies) / fromIntegral (length movies)

2. 股票价格预测:

假设我们有一个包含历史股票价格的数据集,并且我们想要预测未来某个时间点的股票价格。我们可以使用Python的pandas库和Haskell的DataFrames库进行数据分析和模型训练。首先,我们可以使用Python的pandas库加载数据集,并使用线性回归模型训练预测模型。

import pandas as pd
from sklearn.linear_model import LinearRegression

# 加载数据集
data = pd.read_csv('stock_prices.csv')

# 训练预测模型
model = LinearRegression()
model.fit(data[['time']], data['price'])

# 预测未来某个时间点的股票价格
future_time = 100
future_price = model.predict([[future_time]])
print(f'Future price at time {future_time}: {future_price}')

接下来,我们可以使用Haskell的DataFrames库加载数据集,并使用线性回归模型训练预测模型。

import Data.Csv
import Data.Vector (fromList)
import Data.ByteString.Lazy (readFile)
import Numeric.LinearRegression

-- 定义股票价格数据的数据类型
data StockPrice = StockPrice { time :: Double, price :: Double }

-- 从CSV文件加载数据集
loadData :: FilePath -> IO (Either String (Vector StockPrice))
loadData path = do
    csvData <- readFile path
    return $ decodeByName csvData >>= \(h, v) -> return $ fromList $ map (\r -> StockPrice (read (r!!0) :: Double) (read (r!!1) :: Double)) $ toList v

-- 使用线性回归模型训练预测模型
trainModel :: Vector StockPrice -> (Double, Double)
trainModel data = (intercept, slope)
    where
        (slope, intercept) = linearRegression $ map (\r -> ([time r], [price r])) $ toList data

-- 预测未来某个时间点的股票价格
predictPrice :: Double -> (Double, Double) -> Double
predictPrice futureTime (intercept, slope) = intercept + slope * futureTime

以上是两个使用Python和Haskell进行数据分析的案例,并提供了相应的代码示例。这些案例只是简单示例,实际的数据分析工作可能涉及更复杂的数据处理和模型训练。使用Python和Haskell进行数据分析需要掌握相应的数据分析库和语言特性,并灵活应用它们来解决实际问题。