Pythonで重回帰分析をしてみよう【Python機械学習#4】

Поделиться
HTML-код
  • Опубликовано: 2 янв 2025

Комментарии • 19

  • @nishimaki
    @nishimaki  3 года назад +1

    本動画で使用しているソースとファイルのダウンロードは下記URLからどうぞ。
    analysis-navi.com/?p=3868

  • @ブロークンアンディ
    @ブロークンアンディ 2 года назад +1

    df.columns が利用できないのですが、原因がなにかわかりますか?
    エラーコード
    KeyError: "None of [Index([''], dtype='object')] are in the [columns]"

    • @nishimaki
      @nishimaki  2 года назад

      データフレームの列名が認識されていないのですかね。
      ソースコードとcsvはダウンロードしたものをお使いでしょうか?

  • @hor9184
    @hor9184 3 года назад +1

    predictするときテストデータが少ないとエラーが出るんですが原因ってわかりますか?
    predictのときに教師データと同じもの入れたりするとそれは上手く予測してくれるんですけど。

    • @nishimaki
      @nishimaki  3 года назад

      エラーの内容が分からないので何とも言えない所ではございますが、テストデータが少なくてもpredictは実行できるはずです。
      まずは、説明変数の数は教師データと合っているか、Excelのデータは正しくPythonに読み込めているか、などを確認されると良いかなと思います。

    • @hor9184
      @hor9184 3 года назад

      予測するデータが入ったエクセルの行数を5から1にするとエラーが出ます。5ならエラーが出ません。
      shapes(1,16)and(17,)not aligned:16(dim 1)!=17(dim 0)って感じです
      おそらくデータ数が1だったりすると何故か切片にかかる1の要素が入れられてないみたいです。

    • @nishimaki
      @nishimaki  3 года назад +1

      調査した所、仰る通りデータ数が1件ですとsm.add_constantで「const」の列が追加されずエラーになるようです。(バグなのでしょうか。。。)
      なので、カッコ悪いですがcsvに同じデータを2件入れて実行する、もしくは下記のように手動で「const」の列を追記して実行するとテストデータが1件でも実行できるようです。
      result.predict(sm.add_constant(df_future[X_name]))

      result.predict(pd.concat([pd.DataFrame([1.0],columns=["const"]), df_future[X_name]], axis=1))
      無理やりな対処ですみませんが、こちらでいかがでしょうか。

    • @hor9184
      @hor9184 3 года назад +1

      @@nishimaki ありがとうございます!試してみたいと思います

  • @フシェ
    @フシェ 4 года назад +1

    このようなデータをどのように収集したらいいのでしょうか

    • @nishimaki
      @nishimaki  4 года назад +1

      今回扱っているデータは、私が適当に作成したデータとなります。
      実際は、例えば気象庁のページから天候情報などを取得して、そこに自社固有のデータをくっ付けるなどして作成することになるかと思われます。

    • @フシェ
      @フシェ 4 года назад +4

      @@nishimaki ご返信ありがとうございます。現在、データ採取に苦戦中です。いつも参考にさせていただいております。今後も動画投稿楽しみにしております。

  • @macchosan
    @macchosan 2 года назад

    モーションセンサーで機械学習を使いたいのですが、上下に動かすとある動作をさせるようなものを作りたいのですが。
    モーションセンサーで上下に振る動作のデータがx軸、y軸、z軸の加速度などの数値がそれぞれ20個以上あります。
    このような数値を機械学習をしたいときどのような学習方法をすればよいでしょうか?

    • @nishimaki
      @nishimaki  2 года назад

      20個以上ある変数がすべて説明変数で、「ある動作」が目的変数になりますね。
      例えば「x軸=0.5、y軸=0.1、z軸=-0.2、、、、だった場合、動作は〇〇」といった要因と結果のセットを大量に機械学習に学習させる事になるかと思われます。

  • @GTmattu
    @GTmattu Год назад

    散布図での表記もしてほしかった

  • @F20Tigershark2007
    @F20Tigershark2007 2 года назад

    いつも本当にわかりやすい講義感謝しています。
    気温、価格 の数値を標準化もしくは正規化する必要はこのようなケースの場合ありませんか?正規化して実装しようとしてみたんですが、価格がゼロになってしまいました。本質とは違う質問になってしまいますが、どうしてでしょうか?
    【コード】
    from sklearn.preprocessing import MinMaxScaler
    # 標準化したいカラムを用意
    scaling_columns = ["temperature", "price"]
    scaler = MinMaxScaler([0,100])
    # DataFrameにfit
    sc = scaler.fit(df_past[scaling_columns])
    scaled_df_past = pd.DataFrame(sc.transform(df_past[scaling_columns]), columns=scaling_columns, index=df_past.index)
    df_past.update(scaled_df_past)
    df_past_SC=df_past
    【out】
    sales temperature price rainy
    0 401 0.462963 33.333333 1
    1 345 0.000000 0.000000 1
    2 480 21.296296 0.000000 1
    3 590 40.740741 33.333333 0
    4 928 71.296296 66.666667 0

    • @nishimaki
      @nishimaki  Год назад +1

      こちらこそご視聴ありがとうございます!
      コードを拝見すると、処理は正しく出来ているように思えます。
      データを0〜100に正規化する処理を行われていますが、priceの最低値が180、最高値が240なのでこれらがそれぞれ0と100に変換されます。
      なので、元データが180の箇所はすべて0、元データが240の箇所はすべて100となります。
      ちなみに回帰分析の前に正規化する事自体は誤りでなく、ゼロになったからと言って間違いという訳ではありません。

    • @F20Tigershark2007
      @F20Tigershark2007 Год назад +1

      @@nishimaki ご回答ありがとうございます。そうですよね、ボトムが0でも問題ではないんですね。よくわかりました。