2017-07-27 10 views
0

私はPythonとMachine Learningの新機能ですが、私はMortgage価格の予測モデルを構築するために取り組んできました。私が苦労しているところでは、K-Nearest Neighborアルゴリズムを使用して機能を作成しています。私が達成したいものを、私はの仕組みを理解する方法をここでK-最近のネイバーを使用してフィーチャーを作成する

です:

  1. 私は2つのデータファイルがあります(/緯度などの販売住宅ローンと私は同じ機能を持って、両方のデータファイルで
  2. 上場住宅ローンを長いです)。
  3. 私は、最寄りの住宅に最も密接に関連する家の平均価格を表す住宅ローンリストを作成したいと考えています。
  4. 私は、3ヵ月、4ヵ月、7ヵ月〜12ヵ月間の列を作成するために、3に記載された方法を使用します。
  5. もう1つの列は、これら3つの列のトレンドになります。

私はKNNの帰属について何かを見つけましたが、それは私が探しているものではありません。

このアイデアを実行するにはどうすればよいですか?私が逃した可能性のあるリソースはありますか?

ガイダンスをいただければ幸いです。ありがとう!

+1

「即時地域で最も密接に関連家」:あなたは、あなたの関係の指標として距離を考慮していますか? –

+0

ねえのYuval。いいえ、私はそれがそれよりも広範でなければならないと思います。お互いに足で1 bdと4 bdが非常に異なる価格を持つことができます。私の目標は、最も好きなものを見つけるために、距離を含む複数の機能を考慮に入れることです。 – Shad

答えて

1

私が理解しているように、Mortgages Soldデータを使ってKNNモデルに合って、Mortgages Listedデータの価格を予測したいとします。 これは、リストされたデータの各特徴ベクトルのSoldデータの最も近い特徴ベクトルを見つけて、それらの特徴ベクトルの中央値を取る必要がある古典的なKNNの問題です。

  • は、販売データ中のn行が検討、および行ごとに特徴ベクトルはX1、X2、...、Xnのであり、対応する価格はP1、P2、...、Pnの

    あります

    X_train = [X1, X2, ..., Xn]

    y_train = [P1, P2, ..., Pn]

  • それぞれ西自体が特徴ベクトルとi番目の行の代表

  • であることをここで注記

    今のところ、リストされたデータの各行にSoldデータの5つの最も近い行が必要であると考えてください。だから、後で最適化する必要があるかもしれませんここKNNのモデルパラメータは次のとおりです。

    from sklearn.neighbors import KNeighborsClassifier

    knn_model = KNeighborsClassifier(n_neighbors=NUMBER_OF_NEIGHBOURS)

    NUMBER_OF_NEIGHBOURS = 5

  • は、トレーニングのコードは次のようになります

    knn_model.fit(X_train, y_train)

  • 予測のために、リストされたデータにm行があり、各行の特徴ベクトルはF1、F2、...、Fmであると考えます。対応する中央値段Z1、Z2、...、Zmを決定する必要がある。

    X_test = [F1, F2, ..., Fm]

  • X_trainとX_testにおける特徴ベクトルが同じベクトラ/トランスを使用してベクトル化されなければならないことに注意してください。 Vectorizers hereについての詳細を読む。

    y_predicted = knn_model.predict(X_test)

  • このy_predictedリストの各要素は、(この場合は)y_trainから5枚の最も近い価格に含まれています:

  • 予測コードは次のようになります。それは次のとおりです。

    import numpy as np

    Zj = np.median(np.array([Pj1, Pj2, .., Pj5]))

  • したがって、そのように、あなたはそれぞれの中間価格ZJを見つけることができます:y_predictedの各j番目の要素について

    y_predicted = [(P11, P12, .., P15), (P21, P22, .., P25), .., (Pm1, Pm2, .., Pm5)]

  • リストされたデータの行

  • さて、パラメータ最適化部に来てください。あなたのKNNモデルで唯一のハイパーパラメータがNUMBER_OF_NEIGHBOURSだろう。あなたは80:20の比率発言にX_train自体を分割することによって、このパラメータの最適値を見つけることができます。 80%の部分をトレーニングし、残りの20%の部分をクロスバリデーションします。一度、あなたは精度番号は十分です、あなたはy_test上の予測のためのハイパーパラメータNUMBER_OF_NEIGHBOURSのこの値を使用できることを確信しています。

  • 最後に、月単位の分析では、月単位のモデルを作成する必要があります。例えば、4〜6月販売データ、M3 = 7-12月販売データで訓練等

で訓練1-3月販売データ、M2 =で訓練M1は=リファレンス:http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

関連する問題