利益予測はもはや難しくありません。Scikit-learn 線形回帰法を使用すると、半分の労力で 2 倍の結果を得ることができます。

利益予測はもはや難しくありません。Scikit-learn 線形回帰法を使用すると、半分の労力で 2 倍の結果を得ることができます。

1. はじめに

生成 AI は間違いなくゲームを変えるテクノロジーですが、ほとんどのビジネス上の問題では、回帰や分類などの従来の機械学習モデルが依然として第一の選択肢となっています。

プライベートエクイティやベンチャーキャピタルなどの投資家が機械学習をどのように活用できるか想像してみてください。このような質問に答えるには、まず投資家が重視するデータとその使用方法を理解する必要があります。企業への投資の決定は、支出、成長、バーンレートなどの定量化可能なデータだけでなく、創業者の実績、顧客のフィードバック、製品体験などの定性的なデータにも基づいて行われます。

この記事では線形回帰の基礎について説明します。完全なコードはここにあります。

[コード]: https://github.com/RoyiHD/linear-regression

2. プロジェクトのセットアップ

この記事では、このプロジェクトに Jupyter Notebook を使用します。まず、いくつかのライブラリをインポートします。

ライブラリのインポート

# 绘制图表import matplotlib.pyplot as plt # 数据管理和处理from pandas import DataFrame # 绘制热力图import seaborn as sns # 分析from sklearn.metrics import r2_score # 用于训练和测试的数据管理from sklearn.model_selection import train_test_split # 导入线性模型from sklearn.linear_model import LinearRegression # 代码注释from typing import List

3. データ

問題を単純化するために、この記事では地域データを使用します。これらの数字は、会社の支出カテゴリと利益を表しています。さまざまなデータ ポイントの例をいくつか見ることができます。この記事では、支出データを使用して線形回帰モデルをトレーニングし、利益を予測したいと考えています。

この記事で使用されるデータは、1 つの企業の支出について記述したものであることを理解することが重要です。意味のある予測力は、支出データを収益の伸び、地方税、償却、市場状況などのデータと組み合わせた場合にのみ得られます。

研究開発費

管理

マーケティング

支出利益

165349.2

136897.8

471784.1

192261.83

162597.7

151377.59

443898.53

191792.06

153441.51

101145.55

407934.54

191050.39

データの読み込み中

companies: DataFrame = pd.read_csv("companies.csv", header = 0)

4. データの視覚化

データを理解することは、どの機能を使用するか、どの機能を正規化および変換する必要があるか、データから外れ値を除去するか、特定のデータ ポイントに対してどのような処理を実行するかを決定するために重要です。

目標(利益)ヒストグラム

DataFrame を使用してヒストグラムを直接プロットできます (Pandas は Matplotlib を使用して DataFrame をプロットします)。また、利益に直接アクセスしてプロットすることもできます。

 companies['Profit'].hist( color='g', bins=100);

写真

ご覧のとおり、利益が 200,000 ドルを超える外れ値はほとんどありません。このことから、この記事のデータはある程度の規模の企業を表しているとも推測できます。外れ値の数は比較的少ないため、そのまま保持できます。

機能(支出)ヒストグラム

ここでは、使用された特徴のヒストグラムを確認し、その分布を確認します。 Y 軸は数字の頻度を表し、X 軸は支出を表します。

 companies[[ "R&D Spend", "Administration", "Marketing Spend" ]].hist(figsize=(16, 20), bins=50, xlabelsize=8, ylabelsize=8)

写真

また、外れ値がわずかしかない健全な分布になっていることもわかります。直感的に、研究開発とマーケティングに多くの費用を費やす企業は、より収益性が高いと予想されます。下の散布図からわかるように、研究開発費と利益の間には明確な相関関係があります。

 profits: DataFrame = companies[["Profit"]] research_and_development_spending: DataFrame = companies[["R&D Spend"]] figure, ax = plt.subplots(figsize = (9, 9)) plt.xlabel("R&D Spending") plt.ylabel("Profits") ax.scatter( research_and_development_spending, profits, s=60, alpha=0.7, edgecolors="k", color='g', linewidths=0.5 )

写真

支出と利益の相関関係は、相関ヒートマップを通じてさらに詳しく調べることができます。図からわかるように、研究開発費とマーケティング費は管理費よりも利益との相関性が高いです。

 sns.heatmap(companies.corr())

写真

5. モデルのトレーニング

まず、データセットをトレーニング セットとテスト セットの 2 つの部分に分割する必要があります。 Sklearn は、このタスクを実行するためのヘルパー メソッドを提供します。データセットはシンプルで十分に小さいため、次の方法で特徴とターゲットを分離できます。

データセット

features: DataFrame = companies[[ "R&D Spend", "Administration", "Marketing Spend", ]] targets: DataFrame = companies[["Profit"]] train_features, test_features, train_targets, test_targets = train_test_split( features, targets, test_size=0.2 )

ほとんどのデータ サイエンティストは、X_train、y_train などの異なる命名規則、または他の同様のバリエーションを使用します。

モデルトレーニング

次に、モデルを作成してトレーニングします。 Sklearn は物事を非常にシンプルにします。

 model: LinearRegression = LinearRegression() model.fit(train_features, train_targets)

6. モデル評価

この論文では、モデルのパフォーマンスとその有用性を評価することを目的としています。まず、計算された係数を見てみましょう。機械学習では、係数は各特徴に掛けられる学習された重みまたは値です。各機能の学習係数が表示されることが期待されます。

 coefficients = model.coef_ """ We should see the following in our console Coefficients [[0.55664299 1.08398919 0.07529883]] """

上記のように、係数は 3 つあり、それぞれ特性(「研究開発費」、「管理費」、「マーケティング費」)に 1 つずつあります。各係数を視覚的に理解しやすくするために、グラフとしてプロットすることもできます。

 plt.figure() plt.barh(train_features.columns, coefficients[0]) plt.show()

写真

計算エラー

この記事では、モデルのエラー率を理解することを目的とし、Sklearn の R2 スコアを使用します。

 test_predictions: List[float] = model.predict(test_features) root_squared_error: float = r2_score(test_targets, test_predictions) """float We should see an ouput similar to this 0.9781424529214315 """

1 に近いほど、モデルの精度が高くなります。これは実際には非常に簡単な方法でテストできます。

データセットの最初の行を取得できます。以下の支出モデルを使用して利益を予測すると、192,261 ドルに十分近い数字が得られることが予想されます。

 "R&D Spend" | "Administration" | "Marketing Spend" | "Profit" 165349.2 136897.8 471784.1 192261.83

次に、推論リクエストを作成します。

 inference_request: DataFrame = pd.DataFrame([{ "R&D Spend":165349.2, "Administration":136897.8, "Marketing Spend":471784.1 }])

モデルを実行します。

 inference: float = model.predict(inference_request) """ We should get a number that is around 199739.88721901 """

ここで、エラー率は abs(199739-192261)/192261=0.0388 であることがわかります。これは非常に正確です。

7. 結論

データを処理し、モデルを構築し、データを分析する方法は多数あります。すべての状況に当てはまる単一のソリューションは存在しません。機械学習を使用してビジネス上の問題を解決する際の重要なプロセスの 1 つは、同じ問題を解決するように設計された複数のモデルを構築し、最も有望なものを選択することです。


<<:  大規模言語モデルのデコード

>>:  データ保護にはAIベースのセキュリティ戦略が必要

ブログ    

推薦する

研究によると、人工知能が書いたツイートに騙される可能性が高くなる

6月29日のニュースによると、新たな研究によると、人間が書いたツイートよりも、人工知能の言語モデルに...

...

テスラのオプティマスヒューマノイドロボットが再び進化:視覚に基づいて物体を自律的に分類し、ヨガもできる

9月24日のニュース、本日早朝、テスラ オプティマスの公式Twitterアカウントが新しいビデオをア...

PyTorch でリカレントニューラルネットワークを実装するにはどうすればいいですか?

[[189593]] Siri から Google 翻訳まで、ディープ ニューラル ネットワークは...

人工知能の時代、今後子どもたちが持つどんな能力が人気になるのでしょうか?

今年の全国人民代表大会では、「人工知能」というホットな言葉が登場した。先週の土曜日、中国教育も音声デ...

...

3分で顔認識を始めましょう

顔認識は、AI 研究が世界にもたらした数多くの驚異のうちの 1 つです。これは多くの技術者にとって興...

...

Yixue EducationのCui Wei氏:将来、教育分野での授業はロボットに置き換えられるでしょう

[原文は51CTO.comより] 教育業界と人工知能が出会うと、どんな火花が散るでしょうか?国内外の...

1300億のパラメータを持つ中国初の大規模数学モデルMathGPTがリリースされました!複数のベンチマークがGPT-4を上回る

数学的 AI ビッグモデルはこの分野の将来を変える可能性があります。本日、中国初の兆スケール数学モデ...

機械学習を使用して、GPU と TPU で高速化できる O(N) 複雑度のソート アルゴリズムを構築します。

[[238409]]ソートは、コンピュータ サイエンスにおいて常に最も基本的なアルゴリズムの 1 ...

GPTストア立ち上げの裏側:民間開発者のグループが儲かり、スタートアップのグループが消滅

ノア著制作:51CTO テクノロジースタック(WeChat ID:blog)昨年末に一連の「宮廷闘争...