Apache Spark MLlib 是一個用于大規模機器學習的分布式計算框架。它提供了許多常用的機器學習算法,如分類、回歸、聚類、協同過濾等。以下是一個簡單的示例,展示了如何使用 Spark MLlib 實現線性回歸。
首先,確保你已經安裝了 Apache Spark 和相關的依賴庫。接下來,我們將使用 Python 編寫一個簡單的程序來實現線性回歸。
from pyspark import SparkConf, SparkContext
from pyspark.mllib.regression import LinearRegressionModel, LinearRegressionWithSGD
from pyspark.mllib.evaluation import RegressionEvaluator
import numpy as np
conf = SparkConf().setAppName("Linear Regression Example")
sc = SparkContext(conf=conf)
# 生成 100 個樣本,每個樣本有 3 個特征
np.random.seed(42)
X = np.random.rand(100, 3)
y = 2 + 3 * X[:, 0] + 4 * X[:, 1] + 5 * X[:, 2] + np.random.rand(100)
# 將數據轉換為 RDD
data = sc.parallelize(zip(X, y))
# 使用隨機梯度下降算法
lr = LinearRegressionWithSGD(sc, iterations=100, stepSize=0.01)
# 擬合模型
model = lr.train(data)
# 獲取模型的參數
weights = model.weights
intercept = model.intercept
print("Weights:", weights)
print("Intercept:", intercept)
# 使用均方誤差(MSE)作為評估指標
evaluator = RegressionEvaluator(metricName="rmse", predictionCol="prediction", labelCol="label")
predictions = model.predict(data)
rmse = evaluator.evaluate(predictions)
print("Root Mean Squared Error (RMSE):", rmse)
sc.stop()
這個示例展示了如何使用 Spark MLlib 實現線性回歸。你可以根據需要調整參數和算法,以適應不同的機器學習任務。更多關于 Spark MLlib 的信息和示例,請參考官方文檔:https://spark.apache.org/docs/latest/ml-guide.html