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

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

CMU がオープンソースの AI コード生成モデルを作成、C 言語は Codex を上回る

最近、言語モデル (LM) は、プログラミング言語のソースコードのモデリングにおいて優れたパフォーマ...

...

Zhuiyi Technology AI Lab: ビジネスとテクノロジーの両方を推進し、新しいレベルのインテリジェントなインタラクティブアプリケーションを創造

[51CTO.comからのオリジナル記事] 人工知能の推進により、ビジネス運営モデルは変化しました。...

人工知能の進化:過去、現在、そして未来

近年、人工知能はロボットが人間のように考え、行動することを可能にする強力なツールへと発展しました。さ...

...

「UAV+環境保護」は完璧な組み合わせであり、統合開発の見通しは有望である

産業革命以降、環境破壊のスピードと範囲は拡大し続け、環境問題や自然災害がますます増加し、生命と生存に...

Bengio が参加、LeCun が気に入る: グラフ ニューラル ネットワークの権威あるベンチマークがオープンソースに

[[317692]]グラフニューラルネットワークはどの程度発展しましたか?現在、評価専用のベンチマー...

AI時代が到来。プロの写真家は淘汰されるのか?

テクノロジー業界では、AI の進化により、プロの写真家を含む多くの仕事が置き換えられるだろうという意...

リアルタイムスタイル転送、モバイル端末で実行、顔エフェクトで遊ぶ新しい方法

今年、フェイシャルビデオエフェクトは世界中で再び大人気になりました。年初にやった「蟻の歯黒」(人間の...

2021年には、人工知能が私たちの生活にさらに統合されるでしょう。これは何を意味するのでしょうか?

人工知能の歴史は、アラン・チューリングがチューリングテストを発明した 1950 年代にまで遡ります。...

AIと5Gを組み合わせてIoTの収益を最大化する方法

[[402984]]研究によると、人工知能と 5G テクノロジーを組み合わせることで、通信会社は I...

...

uSens 馬 源宇: 人工知能と仮想現実が出会うとき

[51CTO.comより引用] 2017年7月21日から22日まで、51CTO主催の人工知能をテーマ...