用機器學習給企業打分的技術原理

本文介紹基于機器學習的方式給企業進行價值評估多維度打分的實現技術棧,參考SK-Learn來進行。

機器學習打分原理:

1. 數據分析

? ? 通過圖形對之前打分系統的結果進行觀察分析,了解數據的分布狀態,確定樣本數據的每個特征是否適合模型訓練,并且通過圖形確定數據是否線性或非線性,找到邊界經驗值。

2. 數據預處理

? ? https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing
? ? 企業的特征數據有很多,數據類型包含字符型,數值型和布爾型,需要把數據標準化之后,才能提供給下一步,進行模型訓練。

數據集的標準化是scikit-learn中實現的許多機器學習估算器的常見要求 ; 如果單個特征看起來不像標準的正態分布數據,它們可能表現得很糟糕:具有零均值和單位方差的高斯分布。在實踐中,我們經常忽略分布的形狀,只是通過去除每個特征的平均值來轉換數據以使其居中,然后通過將非常數特征除以它們的標準偏差來對其進行縮放。

? ? 處理方式包括:

? ? 1. 數據標準化


? ? ? ? 1. 編碼分類特征(字符型)https://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features
? ? ? ? 2. K譜線離散化(數字型)https://scikit-learn.org/stable/modules/preprocessing.html#k-bins-discretization

? ? 2. 數據補全

https://scikit-learn.org/stable/modules/impute.html#impute
由于各種原因,許多企業數據集包含缺失值,通常編碼為空格,NaN或其他占位符。然而,這樣的數據集與scikit-learn估計器不兼容,這些估計器假設數組中的所有值都是數字的,并且所有數據都具有并保持含義。使用不完整數據集的基本策略是丟棄包含缺失值的整個行和/或列。然而,這是以丟失可能有價值的數據(即使不完整)為代價的。更好的策略是估算缺失值,即從數據的已知部分推斷它們。有關插補的信息,請參閱常用術語和API元素詞匯表。? 數據補全有以下2個方法:

? ? ? 1. 均值補全
? ? ? 2. 標注值補全

?3. 數據調整

? ? ? ? 1. 調整特征到一個范圍 https://scikit-learn.org/stable/modules/preprocessing.html#scaling-features-to-a-range
? ? ? ?另一種標準化是將特征縮放到給定的最小值和最大值之間,通常在0和1之間,或者使每個特征的最大絕對值按比例縮放到單位大小。這可以分別使用MinMaxScaler或實現MaxAbsScaler。使用此縮放的動機包括對特征的非常小的標準偏差的容錯性以及在稀疏數據中保留零條目。

? ? ? ? 2. 調整稀疏數據 https://scikit-learn.org/stable/modules/preprocessing.html#scaling-sparse-data?

將稀疏數據居中會破壞數據中的稀疏結構,因此很少是明智之舉。但是,縮放稀疏輸入是有意義的,尤其是在特征不同的情況下。

MaxAbsScaler?并且maxabs_scale專門用于擴展稀疏數據,是推薦的解決方案。但是,?只要顯式傳遞給構造函數scale并且StandardScaler可以接受scipy.sparse矩陣作為輸入with_mean=False否則ValueError會產生一個靜音中心會破壞稀疏性并且通常會無意中分配過多的內存而導致執行崩潰。?RobustScaler不能適應稀疏輸入,但您可以transform在稀疏輸入上使用該方法。

請注意,縮放器接受Compressed Sparse Rows和Compressed Sparse Columns格式(請參閱scipy.sparse.csr_matrix和?scipy.sparse.csc_matrix)。任何其他稀疏輸入將轉換為Compressed Sparse Rows表示為避免不必要的內存復制,建議在上游選擇CSR或CSC表示。

最后,如果預期中心數據足夠小,則使用toarray稀疏矩陣方法顯式地將輸入轉換為數組是另一種選擇。

3. 模型選擇

? ? 通過場景分析,確定模型方向 https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

解決機器學習問題最困難的部分通常是為項目找到正確的估算器。不同的估計器更適合于不同類型的數據和不同的問題,下面的流程圖旨在為用戶提供一些粗略的指導,說明如何處理有關嘗試數據的估算器的問題。

機器學習

通過我們對企業數據的初步分析,可選擇 SVM 支持向量機建模 和 NNR 神經網絡回歸建模。

支持向量分類的方法可以擴展到解決回歸問題。此方法稱為支持向量回歸。由支持向量分類(如上所述)產生的模型僅取決于訓練數據的子集,因為用于構建模型的成本函數不關心超出邊界的訓練點。類似地,由支持向量回歸產生的模型僅取決于訓練數據的子集,因為用于構建模型的成本函數忽略了接近模型預測的任何訓練數據。

? ? https://scikit-learn.org/stable/modules/svm.html#regression
? ? 通過神經網絡,對不同場景的數據自動識別出模型 ? https://scikit-learn.org/stable/auto_examples/neural_networks/plot_mlp_alpha.html#sphx-glr-auto-examples-neural-networks-plot-mlp-alpha-py

? ? 通過全面網格搜索和交叉驗證,自動找出算法模型,自動優化參數,免去人工干預。

? ? 自動GridSearch 自動選擇模型 SVR 和 KRR 參數的實例: https://scikit-learn.org/stable/auto_examples/plot_kernel_ridge_regression.html#sphx-glr-auto-examples-plot-kernel-ridge-regression-py

機器學習

? ? https://scikit-learn.org/stable/auto_examples/plot_anomaly_comparison.html#sphx-glr-auto-examples-plot-anomaly-comparison-py

4. 模型訓練

? ? 基于自動模型選擇系統,可在每個周期內,基于新舊數據自動訓練并優化模型,實現真正的人工智能
?