2017-02-04 17 views
1

私はチャレンジの一部としてニューラルネットワークを使って地震の規模を予測しようとしています。これはdatabaseです。ニューラルネットワークを使用して値を予測する機能として日付と時刻の値を使用する方法はありますか?

私はすでにnumpyを使ってニューラルネットワークのペットプロジェクトを作ったことがありますが、それは2進数でのみ機能します。

この操作を実行しようとすると、日付と時刻がcannot be multipliedという特長があるため、完了することができます。

私はusing datesに関するいくつかの参考文献を探していますが、知るまでは結論はありません。

これまでにthe earthquakeの大きさを予測するために私が作ったノートがあります。

場合、誰もが知っています:私は機能

  • として、日付と時刻を使用することができます

    • は、このprojectのいくつかの変更を使用して大きさを予測しますか?
  • +0

    どのペットプロジェクトはありますか – Nils

    +0

    @Nils私はそれを明確にするように更新しました。この[プロジェクト](https://gist.github.com/cleytonmessias/e8290c470c28695322224bed08fc92e7)。 – Cleyton

    答えて

    1

    日付を使用する場合は、それらを浮動オブジェクトに変換できます。あなたのフィーチャーを表す日付のリストを使用して、そのリストの最古の日付から経過した秒数で値のリストを計算することができます。 2つのdatetime.datetimeオブジェクトの違いを取る場合は、total_seconds属性を持つtimedeltaオブジェクトを取得します。ここ

    は、このような変換を行う方法の例である:

    import datetime 
    date_features = [datetime.datetime(2013, 11, 10), 
           datetime.datetime(2016, 8, 20), 
           datetime.datetime(2015, 1, 12)] 
    
    # Get the list with seconds since earliest event 
    date_features = [(i - min(date_features)).total_seconds() for i in date_features] 
    # Normalize data so it lies between 0 and 1 
    date_features = [i/max(date_features) for i in date_features] 
    print(date_features) 
    

    出力:

    [0.0, 1.0, 0.42209072978303747] 
    

    これらの値は、一般に、ニューラルネットワークにおける予測機能として利用することができます。このような機能として時間を使用することは、最良のアイデアではないかもしれません。 あなたが指定したリンクで述べたように、日付はカテゴリデータとしてコード化することもできます。データの開始から経過した時間には1つの変数と係数を追加するのではなく、1日または1時間に1つの変数と係数を追加します。

    [datetime.datetime(2013, 11, 10), 
    datetime.datetime(2013, 11, 10), 
    datetime.datetime(2015, 1, 12)] 
    

    最初の2つのデータ点が時間機能の同じ値を共有し、第三が異なる:

    は、以下の日付時刻を見ます。次の2つの新しい変数、各日付に1つずつ追加していることをエンコードすることができ:イベントがdatetime.datetime(2013, 11, 10)に行われた場合

    features = [[1, 1, 0], 
          [0, 0, 1]] 
    

    私はバイナリエンコーディングを使用し、最初のリストの機能は他の0、1です。 2番目のリストには、イベントが datetime.datetime(2015, 1, 12)、それ以外の場合には1があります。