商業智能中的決策, 數據和數據處理方法

来源:https://www.cnblogs.com/milton/archive/2022/05/22/16296974.html
-Advertisement-
Play Games

商業智能(BI)作為高價值服務, 自20世紀60年代電腦出現時就已經存在, 當時主要的用戶是大型企業和政府部門, 經過半個世紀的發展, 商業智能已經成為中小企業的必備技能. 使用BI, 企業可以從實際數據中提取關鍵事實, 將其轉化為決策的依據. 是否高效地使用商業智能和分析, 是現代環境中成功的關... ...


-- 人會說謊, 但是數據不會

聲明

個人原創, 轉載需註明來源 https://www.cnblogs.com/milton/p/16296974.html

數據和決策

商業智能(Business Intelligence)是一個總稱: 包括數據的定義, 生成, 收集, 存儲和分析, 以及最後的一環 -- 決策.

數據化是對信息進行收集, 量化和存儲. 這個趨勢將一切活動數字化

  • 可以電子化的活動: 媒體, 通信, 交易, 票據, 音樂, 娛樂等, 信息化的變革直接取代了過去傳統的工作方式
  • 無法電子化的活動: 建築, 製造, 運輸, 食品, 醫護, 商超等, 因為必須以物理形態交付, 這些活動無法數字化, 但是可以通過IOT將過程數字化, 這方面現在有個流行名詞叫數字孿生

由於科技的發展, 存儲與傳輸的成本越來越低, 信息的產生速度與日俱增, 作為企業如何利用數據價值變得前所未有的重要.

數據對於決策的重要性 -- 傳說羅斯柴爾德家族通過信鴿, 在滑鐵盧戰役還沒有結束時就提前知道結果, 從而大量買入英國國債, 雖然未必是其成功的關鍵因素, 但是可以看出信息如何關鍵.

商業智能作為高價值服務, 自20世紀60年代電腦出現時就已經存在, 當時主要的用戶是大型企業和政府部門, 經過半個世紀的發展, 商業智能已經成為中小企業的必備技能.

數據驅動決策

如果一個人把決策建立在主觀認知而不是事實基礎上, 就容易產生錯誤的決策. 企業也是如此.

使用BI, 企業可以從實際數據中提取關鍵事實, 將其轉化為決策的依據. 是否高效地使用商業智能和分析, 是現代環境中成功的關鍵.

商業決策根據頻率和影響, 通常分為三類: 運營, 管理和戰略.

運營決策

運營決策通常頻繁發生, 每小時每分鐘, 與企業的業務相關. 運營決策影響企業的日常經營情況以及盈利能力. 對於生產經營中存在的具體問題, 通過BI系統進行自動決策或輔助決策, 可以提升工作效率, 減小風險, 例如

  • 媒體通過分析用戶的閱讀歷史, 向用戶推薦喜歡的內容, 提升用戶粘度.
  • 產線通過收集當前的庫存, 產量, 成品率, 未來的訂單, 向採購部門提示可能出現短缺風險
  • 風控根據用戶的信貸歷史, 行業, 收入, 住址, 電話, 人際關係, 判斷用戶的風險等級, 決定信貸額度
  • 高頻交易系統. 這算是BI系統的一個極端例子.

管理決策

管理決策的頻率不會很頻繁, 例如每周或每月, 屬於企業中的中層管理決策, 通常這些決策與戰略決策的息息相關. 例子包括產品價格調整, 營銷策略, 優惠政策等:

  • 廣告投放中, 根據各通道同類業務的歷史performance, 確定在各通道的投放比例和投放策略
  • 根據生產原料, 期貨市場的市場供給情況預估成本, 確定未來一個季度的產品價格空間
  • 根據營銷目標, 流量通道的變化, 流量成本和轉換成本, 調整營銷策略.

戰略決策

戰略決策通常由一個組織的最高管理層制定, 將對組織未來長時間的活動造成重大影響. 需要對多種方案進行仔細分析和評估後確定, 這種決策通常是不可重覆的. 通過BI可以分析巨集觀環境, 通過市場趨勢, 貨幣周期, 政策風向, 市場監管, 領導人偏好等重要信息, 結合內生數據對各種方案進行量化, 為最終的戰略決策提供依據.

戰略決策的例子包括

  • 資產的兼併收購和出售
  • 事業部整合, 組織架構調整
  • 預算和目標調整, 對新市場的投資
  • 產線的擴張, 連鎖店面的擴張, 新城市的佈局

決策的一致性

決策中, 每一個層級都為實現上一層的決策服務, 一個大的決策會隨著時間不斷分解為更小的決策, 直至目標達成, 或目標無法達成不得不更換上層決策.

以俄政府決定武裝進攻烏克蘭為例

  • 戰略決策: 制定發動戰爭的目的, 確定要武裝進攻, 確定進攻目標, 對各種情況的推演(需要多少物資和人力, 什麼時間開打, 如何應對戰爭帶來的內外風險和Plan B)
  • 管理決策: 具體到某一階段的進攻, 階段目標, 預估對方規模, 投入的資源, 如何協調各職能, 前線和後勤, 對可能存在風險的預估
  • 運營決策: 具體到一個具體的進攻, 對方有哪些工事和火力點, 己方有哪些武器設備, 進攻的選項和判斷, 以及戰鬥過程中出現各種情況的應對.

隨著每一個局部戰鬥(運營決策)的執行, 結果與預期的差距, 導致上層決策(戰略決策)不斷調整, 從最初的空降基輔, 到五月初的戰線收縮轉為集中兵力從東部推進. 可以看出在開戰之初, 俄政府的數據和決策是有問題的, 基於錯誤的數據和判斷, 做出了開戰和冒進的決策.

用於決策的數據

從整體看, 這些數據分為

公共數據

公共數據指的是能從公開的渠道獲取的數據, 例如貨幣匯率, 證券資產的價格; 某一地的人口, 氣溫, 降水量和濕度, 手機號歸屬地, IP歸屬地, 身份證歸屬地, 企業所處行業的原材料和商品價格行情, 等等.

不同的業務對公共數據有不同的需求, 體現在精度(準確性), 實時性, 回溯性等方面. 例如交易數據, 可以分為不同的時間間隔, 五秒, 五分鐘, 日, 周.

要求不高的數據, 可以從公開渠道下載或自行採集, 但是對精度和實時性要求高的數據, 需要從非公共渠道購買.

非公共數據

這部分數據指非公開渠道的數據, 或者需要付費的商業數據. 例如上面提到的高頻交易數據, 有專人維護的地理信息和交通信息, 一些行研收集的行業數據, 還有監管機構從被監管機構提取的運營數據等.

內生數據

企業運營中產生的數據: 財務數據, 業務數據, 大部分BI系統, 處理的是這部分內容, 配合公共和非公共數據, 產生報表或做出決策.

數據的類型

數據的類型, 從不同的角度有不同的分類:

  • 定性和定量
  • 離散和連續
  • 單維和多維 (例如地理坐標)

對於定性數據, 必須將定性數據轉化為定量數據, 才能進行正確的分析.

BI系統對數據的分類

BI系統對數據的分類有三層, 分別是 Raw(原始數據), Meta(元), Model(模型), 每一層都是對前一層數據的細分.

Raw 原始數據

原始數據泛指各種未經校驗的, 未處理的, 未結構化的, 無直接的自然含義的數據. 這一階段的數據是粗糙的, 可能存在噪音, 可能存在不匹配的格式, 需要處理後才能被軟體使用.

原始數據的例子

  • 從感測器採集的每秒的角度讀數
    根據ADC的採樣頻率和精度, 感測器讀數會是一個固定時間間隔的數字, 這個數字有可能是一個區間的整數值, 例如對於10bit精度的ADC, 採樣值範圍為[0, 1024], 邊界和中點未校準, 例如搖桿角度範圍為120度, 讀數中點(60度)在 508 而不是 511, 邊界是[5, 1021], 而且讀數的變化在各個角度是不均勻的, 中間解析度大, 兩邊解析度小. 對於這種數據, 要經過校準, 去噪, 轉換等方式, 將讀數轉變為對下一個階段有意義的數據.
  • 媒體的網頁數據
    從爬蟲的角度, 如果是一個HTML結構的頁面, 數據是一個很大的字元串, 當中包含了各種HTML標簽, 廣告和固定的界面元素, 如果需要的是其中的新聞內容, 則需要對數據進行HTML解析, 根據路徑提取某一個id或class中的內容. 內容中如果存在一些特殊字元, 例如內嵌了廣告, 或者站內的鏈接, 還需要進一步過濾
  • 通話錄音
    通話錄音是一個二進位文件, 根據數據處理的需要, 例如希望做文本分析和關鍵詞提取, 則首先需要根據錄音的編碼格式, G.726, 還是AC3, MP3, 還原迴音頻, 使用ASR工具提取文本

原始數據的類型

基礎類型

從BI軟體的角度, 原始數據有以下基礎類型

  • 字元串
  • 數值
  • 時間
  • 二進位(*)

實際上通用的類型只有三種: 字元串, 數值, 時間. 二進位是一種特殊的類型, 用於處理其它的例外情況, 例如無法識別的數據. 對於二進位數據, 通常需要轉換為以上的三種通用類型才能被BI軟體處理.

基於以上的基礎類型, 進行排列組合可以得到派生類型, 例如

  • 多維數據(例如X-Y-Z軸坐標值)
  • 數組

高級類型

對於數值類型和時間類型, 可以進一步衍生出高級類型

  • 數值
    • 整數
      • 小整數(絕對值不超過255的整數)
      • 長整數
    • 浮點數
      • 百分比(取值在0 - 1區間的值)
      • 小數位數固定的浮點數
  • 時間
    • 日期(不包含時間部分)
    • 時間(不包含日期部分)
    • 完整時間(包含年月日時分秒)

Meta 元數據

元數據是經過加工清洗後, 具有自然含義的數據. 這一階段的數據是可以被BI軟體直觀理解的, 與現實世界相關的數據.

元數據的例子

  • 校準後的角度讀數
    經過校準和轉換, 在規定的誤差範圍內反映機械搖桿的角度
  • 攝氏度氣溫值
    在規定的誤差範圍內以攝氏度反映溫度值
  • 中國身份證號
  • IPv4地址

元數據的類型

不同的基礎類型, 可以派生出的元數據類型有

  • 字元串
    • 身份證號
    • 手機號
    • 銀行卡號
    • IP地址
    • 郵政編碼
    • 姓名
    • ...
  • 數值
    • 金額
    • 氣溫
    • 海拔高度
    • 兩地距離
    • 速度
    • 加速度
    • 時間長度
    • ...

同樣地元數據也可以通過排列組合產生派生類型, 例如

  • 一個經度和一個緯度組合產生的地理坐標點
  • 兩個經緯度組合產生的一條地理連線, 或者一個地理矩形區域

Model 模型數據

模型數據是映射到模型中具體欄位的元數據. 這一階段的數據, 在模型中是確定的欄位(或者說特征量). 將用於模型訓練和計算, 影響最終的決策.

模型數據的例子

  • 財務模型中某個子公司月營收金額
  • 交易模型中某個證券資產每天的收盤價格
  • 快遞物流模型中的發件人手機號
  • 快遞物流模型中的收件人手機號

模型數據的類型

因為從元數據可以派生出無窮盡的模型數據, 這部分就無法列舉了.

手機號這個元數據類型舉一個簡單的例子, 根據不同的模型結構, 手機號可以體現為各種具體的欄位

  • 銀行卡預留手機號
  • 交易方手機號
  • 交易對手方手機號
  • 發件人手機號
  • 收件人手機號
  • 簡訊接收方手機號

模型數據的屬性

模型數據根據模型要求, 對數據有額外的屬性要求

  • 是否允許空值 NULL, 如果不允許空, 則在轉換階段要對空值進行過濾或替換處理
  • 是否有限, 例如各種枚舉值, 性別, 年齡, 郵政編碼, 都屬於有限數據
  • 是否連續, 例如金額, 速度, 經緯度, 這些屬於連續值, 對於連續值欄位不能作聚合處理
  • 是否無符號, 例如時間長度, 尺寸長度, 這些使用負值沒有意義

BI系統對數據的處理

BI系統對數據的處理, 可以用ETL的過程進行理解. 借用 Power BI 的數據導入和類型作為示例

抽取 Extract

抽取可以通俗的理解為數據導入. BI系統的第一件事就是將數據導入. 不管主動還是被動, 通過文件或者介面. 在這個過程中需要適配各種數據源的容量, 頻次和格式, 作為BI系統, 這部分也許並不能體現高科技, 但是需要實實在在地投入成本, 控制好質量.

數據的質量, 導入的效率, 異常的處理, 決定了BI系統performance的上限.

技術處理

這裡不討論方式和介面適配, 只對入庫進行說明.

在抽取階段, 每個維度/欄位/特征的數據格式必須為可用的格式: 字元串, 數值或時間. 如果連字元串都無法存儲, 例如二進位數據, 必須通過專用的抽取方法或工具轉換為可用的格式.

在實際應用中, 有兩種形態: 桌面應用 和 伺服器應用

桌面應用

如果BI軟體直接運行在使用者的個人電腦上, 例如 Power BI, 這種情況下, 系統的資源是有限的, 通常只有4G - 8G的記憶體, 以及幾十GB的存儲, 但是BI軟體可以直接訪問文件(例如Excel和CSV數據源).

在桌面應用中, 導入可以簡化為連接數據源, 將數據源作為轉換和載入的基礎.

伺服器應用

如果BI軟體運行在伺服器上, 使用者通過客戶端或瀏覽器使用BI軟體提供的服務, 這種情況下, 系統的資源會充裕得多, 例如32G或更多的記憶體, 數個TB的存儲, 但是BI軟體面對的數據都在遠程, 例如使用者個人電腦上存儲的Excel, 公司財務系統上存儲的報表.

在伺服器應用中, 通常需要將數據緩存至服務端, 再進行後續的清洗和轉換. 對於通用的場景, 可以將原始數據都存儲為字元串, 對於存在二進位數據的場景可以考慮局部使用二進位欄位.

轉換 Transform

轉換中, 需要完成的工作包括數據識別, 數據清洗, 格式轉換和屬性擴充. 目標是要轉換為結構化的元數據.

數據識別

對每個維度/欄位/特征, 根據數據的形態, 依次判斷

  1. 數據的基礎類型(字元串, 數值, 時間)
  2. 高級類型(細化數值和時間類型)
  3. 元類型, 進一步跟進數據的格式和特征進行判斷, 例如一組字元串, 是否為身份證號? 是否為手機號? 是否為IP地址?

並非所有的數據都完成上面三步的判斷.

  • 第一步是一定要完成的, 無論如何, 數據可以作為字元串處理.
  • 有些數據, 可能是多個數據的組合, 或者一個數據的局部, 需要通過格式轉換階段處理, 這一步可以先識別為字元串或某種數值類型.
  • 對於欄位混雜, 或者未對齊的數據, 一個維度可能存在多種類型, 對類型的判斷可用
    • 僅通過前100條(或者其它數量)
    • 根據各種類型的比例, 選擇比例大的
    • 判斷數據源無效, 提示錯誤

數據清洗

根據第一步得到的元類型, 如果無法判斷的, 需要人手工指定元類型

  1. 對欄位中的所有數值進行判斷, 是否滿足
  2. 根據預先制定的規則, 或者人手工下達的指令, 對不滿足的數據進行濾除, 替換或修改

這一步結束後, 欄位的數值應當符合元數據類型的要求

格式轉換和屬性擴充

轉換和擴充, 指的是數據在清洗之後, 在載入模型之前的所有數據編輯操作. 這些操作豐富多樣, 大體有以下類型

  • 特殊格式處理
    • 例如前面提到的多數據欄位, 需要將數據從一個欄位中提出, 填充到多個欄位
    • 而數據局部, 則需要將多個欄位提出, 合併填充為一個欄位
    • 半格式化數據, 例如JSON字元串, 根據解析出的內容, 提取並填充到多個欄位
  • 擴充屬性, 例如從手機號數據, 擴充出手機號歸屬地信息, 填入省, 市, 區欄位
  • 多值歸一, 例如將各種交易描述: "收款", "入賬", "借入", 統一轉換為"IN".
  • 濾除數據, 例如從簡訊記錄中刪除所有發送手機號以10開頭的營銷廣告數據
  • 數據替換, 例如為匹配模型數據中的省市名稱, 將"烏市"替換為"烏魯木齊市"

因為這一步之後不再處理清洗, 所以這一步的操作, 其結果都要滿足當前欄位的元數據類型對數據格式的要求

轉換規則

對於動態產生的數據, 需要保存各欄位的元類型, 需要保存上面得到的轉換規則, 以便新數據產生時自動轉換為目標數據

載入 Load

載入是基於數據模型的, 將對應元類型的數據, 映射到數據模型的某個特征並載入.

在開發上, 涉及到兩部分工作

模型識別

通過抽取和轉換之後的數據集, 是一個欄位/維度/特征的集合, 根據這個集合中的元數據類型, 與系統中存在的數據模型進行匹配, 判斷與各個模型的相似程度, 並確定或推薦最合適的數據模型.

  1. 元數據類型判斷. 根據數據模型中各個特征的元數據類型, 與數據集中的元數據類型進行對比
  2. 欄位名/表頭判斷. 如果原始數據帶表頭, 能提供更有效的匹配依據
  3. 建立數據集與數據模型之間的欄位映射關係

模型匹配和識別通常是一次性的, 甚至在有些場合完全需要通過手工. 這部分是錦上添花的功能, 可以提升用戶體驗, 但是不會對BI的performance造成實質影響.

數據載入

數據載入就是將建立映射關係的數據載入到模型中. 根據BI的處理機制, 通常分為動態和靜態兩種

靜態載入

數據導入後, 不會經常更新, 常用於歷史數據分析, 以及一些長效的決策. 這種載入對系統的要求不高, 按元數據格式入庫即可.

動態載入

動態載入用於處理頻繁更新, 或需要實時決策的場景, 根據來源數據的情況, 動態載入對系統的要求可能會很高

  1. 數據的頻率, 總量和視窗
    處理五秒鐘交易數據還是日交易數據, 處理一支股票還是所有上交所股票, 回溯一個季度的數據還是回溯五年數據
  2. 數據處理的實時性
    做高頻交易, 還是做行研分析
  3. 數據可靠性的標準
    是否允許中間有丟失的數據, 是否允許局部的時間不一致

不同的場景, 對系統的設計思路是不一樣的, 需要具體問題具體分析

總結

以上說明瞭BI系統中決策的類型, 數據對決策的重要性, 數據的類型, 以及最重要的 -- 在BI系統中如何進行數據處理.


參考


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考別人的,自己記錄一下,怕丟失 修改方法:vim /etc/apt/sources.list,然後添加下麵對應的代碼區 中科大鏡像源 deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse ...
  • 前言 本篇博客將會詳細介紹 CSAPP 之 ShellLab 的完成過程,實現一個簡易(lou)的 shell。tsh 擁有以下功能: 可以執行外部程式 支持四個內建命令,名稱和功能為: quit:退出終端 jobs:列出所有後臺作業 bg <job>:繼續在後臺運行一個處於停止狀態的後臺作業,<j ...
  • 前置工作:安裝OpenBLAS; 安裝Mpich (可參考首頁博客) 官網下載壓縮包到/opt目錄 cd /opt && wget https://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz 解壓到 /opt 目錄 tar -xzf hpl-2.3.tar ...
  • 查看官網版本 https://www.mpich.org/downloads/ 最新的stable release是mpich 4.0.2,複製下載鏈接。 安裝依賴 mpich需要系列依賴,如果不確定缺少哪些依賴,可以在後續配置mpich時根據提示安裝缺少的依賴。 CentOS 7.9下安裝mpic ...
  • 概述 MongoDB 是一個介於關係型資料庫和非關係型資料庫之間的產品,是非關係型資料庫中功能最豐富,最像關係型資料庫的。 MongoDB 支持的數據結構非常鬆散,類似 json 的 bson 格式,因此可以存儲比較複雜的數據類型。MongoDB 最大的特點是支持的查詢語言非常強大,語法類似於面向對 ...
  • 一、概述 Apache Sqoop(SQL-to-Hadoop)項目旨在協助RDBMS(Relational Database Management System:關係型資料庫管理系統)與Hadoop之間進行高效的大數據交流。用戶可以在 Sqoop 的幫助下,輕鬆地把關係型資料庫的數據導入到 Had ...
  • 1.先把SplServer解壓 2.解壓後出來Evaluation_CHS 3.點進去,然後點SETUP 4.點擊安裝,然後點擊全新SQL 5.選擇Developer版本 6.資料庫引擎服務框打勾,下麵的目錄不建議放c盤,建議放其他盤去 7.不要動直接下一步 8.不用選中,直接下一步 9.選擇混合模 ...
  • 一、Apache Pig概述 Apache PIG提供一套高級語言平臺,用於對結構化與非結構化數據集進行操作與分析。這種語言被稱為Pig Latin,其屬於一種腳本形式,可直接立足於PIG shell執行或者通過Pig Server進行觸發。用戶所創建的腳本會在初始階段由Pig Latin處理引擎進 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...