Sparkを使用してボストンの住宅価格予測モデルを作成


インストール&セッション設定

!pip install pyspark==3.0.1 py4j==0.10.9 
  • Python SparkにPySpark,
  • を取り付ける
  • javaインストールpy 4 jサンマーの新しいオブジェクト(JAVA用)
  • を使用
    from pyspark.sql import SparkSession
    
    spark = SparkSession \
        .builder \
        .appName("Boston Housing Linear Regression example") \
        .getOrCreate()
  • アプリケーション名を設定してセッション
  • をインストールします.
    spark
  • 作成セッション情報
  • ボストン住宅価格予測モデル


    データの読み込み

    !wget https://s3-geospatial.s3-us-west-2.amazonaws.com/boston_housing.csv
  • トレーニング情報を含むcsv
  • をダウンロード
    !ls -tl
  • ダウンロードのcsv位置が正しいかどうか
  • data = spark.read.csv('./boston_housing.csv', header=True, inferSchema=True)
    Sparkマウント
  • でダウンロードしたcsv
  • data.printSchema()
  • にロードされたcsvデータ情報は、カラム名および属性
  • として提供される.

    フィーチャーベクトルの作成

    from pyspark.ml.feature import VectorAssembler
    
    feature_columns = data.columns[:-1]
    assembler = VectorAssembler(inputCols=feature_columns, outputCol="features")
  • Y値(medv)以外の列を入力、ベクトルアセンブリにより1行を
  • ベクトル化する.
    data_2 = assembler.transform(data)
  • コンポーネントの
  • に元のデータを貼り付けます.

    トレーニングおよびテスト用のデータテンプレートとリニア回帰モデルの作成

    train, test = data_2.randomSplit([0.7, 0.3])
  • RandomSplit法7:3によるデータ配信
  • from pyspark.ml.regression import LinearRegression
    
    algo = LinearRegression(featuresCol="features", labelCol="medv")
    model = algo.fit(train)
    Sparkから
  • Regressionモデルをインポートし、
  • 入力データではx値を特徴とし、y値をmedvの
  • に設定.
  • 学習データ
  • モデルのパフォーマンスの測定

    evaluation_summary = model.evaluate(test)
  • 学習したモデル手法を用いて評価し、テストデータを用いて評価する
  • evaluation_summary.meanAbsoluteError
    
    3.497902588473653
  • 平均誤差絶対値基準
  • evaluation_summary.rootMeanSquaredError
    
    5.183455868492738
  • ルテミン広場標準
  • evaluation_summary.r2
    
    0.6745318757463364
  • r 2予測値
  • モデル予測の表示

    predictions = model.transform(test)
    predictions.show()
  • の結果値にテストデータを追加し、
  • を出力する.
  • medvと実際の予測値との差を肉眼で評価した.

    学習モデルの保存

    model.save("boston_housing_model")
  • と命名し、モデル
  • を保存
    !ls boston_housing_model
    
    data  metadata
  • に格納データは、データおよびメタデータ
  • を含む.
    !ls -tl boston_housing_model
  • 詳細
  • from google.colab import drive
    drive.mount('/content/gdrive')
  • Googleドライブ、
  • を搭載
    model_save_name = "boston_housing_model"
    path = F"/content/gdrive/My Drive/boston_housing_model2" 
    model.save(path)
  • 学習モデルをGoogleドライブ
  • に保存

    保存したモデルの使用

    from pyspark.ml.regression import LinearRegressionModel
    
    loaded_model = LinearRegressionModel.load(path)  # "boston_housing_model")
    ストレージ
  • モデルのパス
  • path保存モデル
  • をインポート