成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利潤預測不再困難,scikit-learn線性回歸法讓你事半功倍

人工智能
處理數據、搭建模型和分析數據有很多方法。沒有一種解決方案適用于所有情況,當用機器學習解決業務問題時,其中一個關鍵過程是搭建多個旨在解決同一個問題的模型,并選擇最有前途的模型。

1、簡介

生成式人工智能無疑是一個改變游戲規則的技術,但對于大多數商業問題來說,回歸和分類等傳統的機器學習模型仍然是首選。

想象一下像私募股權或風險投資這樣的投資者如何利用機器學習。要回答這樣的問題,首先必須了解投資者關注的數據以及它是如何被使用的。投資公司的決策不僅僅基于可量化的數據,如支出、增長和燒錢率等,還包括創始人的記錄、客戶反饋、產品體驗等定性數據。

本文將介紹線性回歸的基礎知識,可以在這里找到完整的代碼。

【代碼】: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、數據

為了簡化問題,本文將使用區域數據。這些數據代表了公司的支出類別和利潤。可以看到一些不同數據點的示例。本文希望使用支出數據來訓練一個線性回歸模型并預測利潤。

重要的是要理解本文將使用的數據描述的是一家公司的支出情況。只有將支出數據與收入增長、當地稅收、攤銷和市場狀況等數據結合起來時,才能得到有意義的預測能力。

R&D Spend

Administration

Marketing

Spend Profit

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來繪制數據幀),可以直接訪問利潤并繪制它。

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

圖片圖片

可以看到,利潤超過20萬美元的異常值非常少。由此還可以從中推斷出本文的數據代表的是具有特定規模的公司。由于異常值的數量相對較少,可以將其保留。

特征(支出)直方圖

在這里,本文想看到使用特征的直方圖并查看其分布情況。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、模型訓練

首先需要將數據集分割為訓練集和測試集兩部分。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個系數,每個特征對應一個系數(“研發支出”、“行政支出”、“市場營銷支出”)。還可以將其繪制成圖表,以便更直觀地了解每個系數。

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越近,模型就越準確。實際上可以用一種非常簡單的方式對這一點進行測試。

可以取數據集的第一行。如果使用下面的支出模型來預測利潤,期望得到一個足夠接近192261美元的數字。

"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、結論

處理數據、搭建模型和分析數據有很多方法。沒有一種解決方案適用于所有情況,當用機器學習解決業務問題時,其中一個關鍵過程是搭建多個旨在解決同一個問題的模型,并選擇最有前途的模型。


責任編輯:武曉燕 來源: Python學研大本營
相關推薦

2023-05-26 12:45:22

predict?方法數據

2018-09-06 08:00:00

深度學習TensorFlowPython

2015-07-22 16:16:47

PythonScikit-Lear機器學習

2018-05-15 08:27:20

Scikit-lear機器學習Python

2021-05-12 09:58:09

PythonXGBoostscikit-lear

2018-10-15 09:10:09

Python編程語言數據科學

2023-02-13 15:00:13

機器學習scikit-leaPyTorch

2018-04-06 05:10:04

K-NN數據集算法

2020-03-02 17:03:32

深度學習人工智能機器學習

2018-04-26 08:40:33

線性回歸算法機器學習

2017-11-03 12:57:06

機器學習文本數據Python

2017-04-21 09:59:11

開源機器學習框架

2017-07-20 10:23:20

pythonscikit-lear垃圾郵件過濾

2022-04-15 10:11:03

機器學習scikit-lea

2024-02-01 09:43:32

模型人工智能

2017-01-05 10:07:33

大數據TheanoCaffe

2020-09-16 11:10:33

Linux命令文件

2018-11-19 15:06:23

Python算法

2021-12-03 23:14:49

Github插件開發

2011-04-22 15:55:33

吊頂正投投影機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲九色| 中文字幕成人在线 | 国产精品一区二区三区四区 | 9久久| 人人性人人性碰国产 | 国产高清一区二区三区 | 欧美精品一区二区三区四区 在线 | 免费午夜视频 | 亚洲国产成人久久综合一区,久久久国产99 | 美女黄色在线观看 | 亚洲成人一区二区 | 久久国产精品无码网站 | 午夜a区 | 欧美精品国产一区二区 | 日韩另类 | 久久久国产亚洲精品 | 麻豆av在线免费观看 | 成人亚洲视频 | 久久性色 | 午夜精品久久久久久久久久久久 | 亚洲精品在线看 | 国产精品一区二区不卡 | 欧美精品一区二区在线观看 | 国产一区二区三区视频 | 99热这里有精品 | 成人乱人乱一区二区三区软件 | 免费一级片| 亚洲精品久久久一区二区三区 | 久久精品欧美一区二区三区不卡 | 一区二区三区四区国产 | 亚洲精品久久久蜜桃 | 欧美亚洲视频 | 国产成人免费视频 | 精品欧美激情精品一区 | 超黄毛片| 999久久久久久久久6666 | 免费特级黄毛片 | 亚洲精品免费在线 | 亚洲二区在线观看 | 男人天堂网址 | 欧美综合久久久 |