利益予測はもはや難しくありません。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ベースのセキュリティ戦略が必要

ブログ    

推薦する

私は普通のAIニューロンです

[[345868]]私はAIニューロンです私はこの世界に生まれたばかりの AI ニューロンです。私...

OT システムは、生成 AI によってもたらされるセキュリティ上の課題にどのように対処するのでしょうか?

現在、ほとんどのサイバー攻撃では、データの流出とデータの暗号化という 2 つの主な方法が使用されてい...

マイクロソフトとグーグルのAIジレンマ:お金を稼ぐためにもっとお金を使う

7月26日のニュースによると、将来、人工知能はマイクロソフトやアルファベットなどのテクノロジー大手に...

JD X ロボティクス チャレンジが終了、BUPT チームのインテリジェント ロボットが優勝

3月25日、北京郵電大学のウォータードロップチームが優勝トロフィーを掲げ、JD X部門主催のJD 2...

ドローンは何に使えるのでしょうか?これらの使い方は本当に素晴らしいです!

ドローンは最近ますます人気が高まっています。高解像度カメラ付きの機械を数百ドルで購入することもできま...

自動運転を利用したい人はどれくらいいるでしょうか?

「ブレーキをかけないで、ただぶつかってください!」少し前、ネット上で出回った動画には、顧客が唐DM...

...

協働ロボットがインダストリー4.0戦略の中核となる理由

[[402166]]今日、ロボットを自動化やインダストリー 4.0 戦略にシームレスに統合する方法に...

2021 年にアルゴリズム エンジニアに必要な必須スキルは何ですか?

[[413437]]アルゴリズムエンジニアにはどのような能力が必要ですか? 「ますます増加する量」...

...

...

...

この履歴書はAIの助けを借りて作成されたことが判明しました。 !

秋の就職活動は静かに過ぎ去りましたが、信頼できるインターンシップ先を見つけたい大学生にとって、すべて...