學(xué)建模競(jìng)賽:中小微企業(yè)信貸決策的建模思路與Python實(shí)現(xiàn))
簡(jiǎn)介本資源是2020年全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽C題“中小微企業(yè)信貸決策”的完整參賽成果包面向數(shù)學(xué)建模參賽學(xué)生、金融數(shù)據(jù)分析初學(xué)者及畢業(yè)設(shè)計(jì)階段的本科生聚焦小微企業(yè)風(fēng)控建模這一典型商業(yè)實(shí)戰(zhàn)問(wèn)題。壓縮包共160個(gè)文件含60個(gè)xlsx與csv格式的原始及處理后數(shù)據(jù)集如train.csv、test.csv、42個(gè)txt日志與參數(shù)說(shuō)明、26個(gè)jpg/png圖表含特征重要性圖、預(yù)測(cè)對(duì)比圖等、10個(gè)MATLAB核心算法腳本m文件、5個(gè)Word論文文檔含主論文與神經(jīng)網(wǎng)絡(luò)專項(xiàng)說(shuō)明整體大小248.35MB結(jié)構(gòu)清晰、模塊可溯。已有659人學(xué)習(xí)下載提供從數(shù)據(jù)清洗、特征工程、多模型構(gòu)建線性回歸、決策樹(shù)、神經(jīng)網(wǎng)絡(luò)到交叉驗(yàn)證與結(jié)果可視化的全流程實(shí)現(xiàn)附帶可編輯論文與可運(yùn)行代碼便于復(fù)現(xiàn)、調(diào)試與課程設(shè)計(jì)拓展應(yīng)用。1. 項(xiàng)目概述與核心價(jià)值如果你正在準(zhǔn)備數(shù)學(xué)建模競(jìng)賽尤其是涉及經(jīng)濟(jì)、金融或數(shù)據(jù)分析類的題目那么“中小微企業(yè)信貸決策”這個(gè)賽題絕對(duì)是一個(gè)繞不開(kāi)的經(jīng)典案例。它源自2020年全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽的C題之所以至今仍被反復(fù)研究和討論是因?yàn)樗昝赖厝诤狭藬?shù)學(xué)建模的核心思想與金融風(fēng)控的現(xiàn)實(shí)需求。簡(jiǎn)單來(lái)說(shuō)題目給出一批虛構(gòu)的中小微企業(yè)及其相關(guān)經(jīng)營(yíng)數(shù)據(jù)要求參賽者建立數(shù)學(xué)模型評(píng)估這些企業(yè)的信貸風(fēng)險(xiǎn)并制定合理的信貸策略比如決定給誰(shuí)貸款、貸多少、利率怎么定。這聽(tīng)起來(lái)像是銀行信貸部門的工作實(shí)際上這正是數(shù)學(xué)建模的魅力所在——用數(shù)學(xué)工具解決一個(gè)真實(shí)的、復(fù)雜的系統(tǒng)工程問(wèn)題。我當(dāng)年帶隊(duì)參賽時(shí)就對(duì)這道題印象極深。它不像一些純理論優(yōu)化題它的每一個(gè)決策都牽扯到收益與風(fēng)險(xiǎn)的平衡你需要同時(shí)扮演數(shù)據(jù)分析師、風(fēng)險(xiǎn)模型師和策略經(jīng)理多個(gè)角色。最終提交的成果通常是一篇結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)腤ord論文和一套能跑出結(jié)果的源代碼多是MATLAB或Python。對(duì)于新手而言直接看優(yōu)秀論文和源代碼是最高效的學(xué)習(xí)路徑你能瞬間明白一個(gè)完整的解決方案是如何從問(wèn)題分析、模型構(gòu)建、算法實(shí)現(xiàn)到結(jié)果可視化的。但更重要的是你要理解這套代碼和論文背后的建模思想與業(yè)務(wù)邏輯這才是能舉一反三、應(yīng)用到其他賽題甚至未來(lái)工作中的關(guān)鍵。2. 賽題深度解析與建模思路拆解2.1 問(wèn)題本質(zhì)在不確定性中尋求最優(yōu)決策我們先拋開(kāi)“數(shù)學(xué)建模”這個(gè)術(shù)語(yǔ)用最直白的話理解這個(gè)題你是一家銀行的負(fù)責(zé)人面前有123家中小企業(yè)題目中編號(hào)為1-123的貸款申請(qǐng)。你手里有它們連續(xù)4年2016-2019的一些關(guān)鍵財(cái)務(wù)數(shù)據(jù)比如營(yíng)業(yè)收入、應(yīng)收賬款、存貨、利潤(rùn)等等。你的任務(wù)是風(fēng)險(xiǎn)評(píng)估量化每家企業(yè)的違約可能性信用評(píng)分。信貸決策在銀行總信貸額度固定比如1億元的前提下決定給哪些企業(yè)放貸、各自的貸款額度是多少、年利率定為多少。策略優(yōu)化使得銀行的總收益利息收入盡可能高同時(shí)將壞賬損失風(fēng)險(xiǎn)控制在可接受范圍內(nèi)。這本質(zhì)上是一個(gè)帶有約束條件的優(yōu)化問(wèn)題。約束包括總資金量、監(jiān)管要求如對(duì)某些高風(fēng)險(xiǎn)企業(yè)的限制、以及你自身對(duì)風(fēng)險(xiǎn)承受的設(shè)定。目標(biāo)函數(shù)就是銀行的最終利潤(rùn)。難點(diǎn)在于企業(yè)的“風(fēng)險(xiǎn)”是一個(gè)無(wú)法直接觀測(cè)的隱藏變量你需要從那些財(cái)務(wù)數(shù)據(jù)中把它“挖”出來(lái)。2.2 核心建模思路一個(gè)經(jīng)典的“流水線”框架解決這類問(wèn)題成熟的思路通常遵循一個(gè)分層遞進(jìn)的流程我把它稱為“信貸決策建模流水線”第一層企業(yè)信用評(píng)價(jià)這是整個(gè)模型的基石。目標(biāo)是將企業(yè)的多維財(cái)務(wù)數(shù)據(jù)如盈利能力、償債能力、運(yùn)營(yíng)效率、發(fā)展能力綜合成一個(gè)單一的信用分?jǐn)?shù)或等級(jí)。常用方法有主觀賦權(quán)法如層次分析法AHP。你需要構(gòu)建一個(gè)評(píng)價(jià)指標(biāo)體系例如一級(jí)指標(biāo)盈利能力、償債能力二級(jí)指標(biāo)銷售利潤(rùn)率、資產(chǎn)負(fù)債率等然后通過(guò)兩兩比較判斷矩陣來(lái)確定各指標(biāo)的權(quán)重。這種方法依賴于專家經(jīng)驗(yàn)在賽題中常用于體現(xiàn)評(píng)價(jià)體系的構(gòu)建過(guò)程但主觀性較強(qiáng)。客觀賦權(quán)法如熵權(quán)法Entropy Weight Method、TOPSIS法。熵權(quán)法根據(jù)各指標(biāo)數(shù)據(jù)本身的離散程度信息熵來(lái)確定權(quán)重?cái)?shù)據(jù)差異越大該指標(biāo)權(quán)重越高。TOPSIS法則通過(guò)計(jì)算每個(gè)企業(yè)到理想解和負(fù)理想解的距離來(lái)排序。這類方法完全由數(shù)據(jù)驅(qū)動(dòng)客觀性強(qiáng)在數(shù)學(xué)建模中非常受歡迎?,F(xiàn)代機(jī)器學(xué)習(xí)方法如邏輯回歸Logistic Regression、隨機(jī)森林Random Forest、XGBoost等。你可以將企業(yè)是否違約題目可能需要你根據(jù)歷史數(shù)據(jù)或規(guī)則進(jìn)行界定作為標(biāo)簽財(cái)務(wù)指標(biāo)作為特征訓(xùn)練一個(gè)分類模型來(lái)預(yù)測(cè)違約概率。這種方法預(yù)測(cè)能力強(qiáng)但需要一定的數(shù)據(jù)預(yù)處理和模型調(diào)優(yōu)知識(shí)。在實(shí)際的優(yōu)秀論文中經(jīng)??吹浇M合模型比如先用熵權(quán)法確定指標(biāo)權(quán)重再用TOPSIS進(jìn)行排序評(píng)分最后用聚類分析如K-means將企業(yè)劃分為“A優(yōu)質(zhì)、B中等、C風(fēng)險(xiǎn)”等不同信用等級(jí)。這樣既保證了客觀性又使得結(jié)果易于理解和后續(xù)處理。第二層信貸額度與利率定價(jià)模型有了信用等級(jí)下一步就是“區(qū)別對(duì)待”?;驹瓌t是信用好多貸款、低利率信用差少貸款、高利率風(fēng)險(xiǎn)補(bǔ)償。額度模型通?;谄髽I(yè)的實(shí)際資金需求如營(yíng)收規(guī)模、資產(chǎn)規(guī)模和信用等級(jí)來(lái)確定。一個(gè)簡(jiǎn)單的思路是設(shè)定一個(gè)基礎(chǔ)額度公式如額度基數(shù) f(企業(yè)規(guī)模指標(biāo))然后用信用等級(jí)系數(shù)進(jìn)行調(diào)節(jié)最終額度 額度基數(shù) × 信用等級(jí)系數(shù)。信用等級(jí)系數(shù)ABC。利率定價(jià)模型這涉及到風(fēng)險(xiǎn)收益匹配。常見(jiàn)方法有基準(zhǔn)利率加成法貸款利率 無(wú)風(fēng)險(xiǎn)利率 信用風(fēng)險(xiǎn)溢價(jià)。其中信用風(fēng)險(xiǎn)溢價(jià)與企業(yè)的信用評(píng)分或等級(jí)掛鉤信用越差溢價(jià)越高。你也可以構(gòu)建一個(gè)更復(fù)雜的函數(shù)讓利率隨信用評(píng)分連續(xù)變化。第三層投資組合優(yōu)化模型這是最體現(xiàn)數(shù)學(xué)建模功力的部分。即使你給每個(gè)企業(yè)都算出了額度和建議利率但銀行的錢是有限的不可能滿足所有申請(qǐng)。你需要從所有企業(yè)中選擇出一個(gè)子集并分配具體的貸款額使得總收益最大、總風(fēng)險(xiǎn)最小。 這天然是一個(gè)多目標(biāo)優(yōu)化問(wèn)題。兩個(gè)核心目標(biāo)最大化總收益總收益 Σ(貸款額_i × 利率_i)最小化總風(fēng)險(xiǎn)總風(fēng)險(xiǎn) Σ(貸款額_i × 違約概率_i)此處為簡(jiǎn)化違約概率可由信用評(píng)分轉(zhuǎn)換而來(lái)約束條件包括總貸款額上限、對(duì)單個(gè)企業(yè)或某一信用等級(jí)企業(yè)的貸款上限、監(jiān)管要求等。 解決方法線性/非線性規(guī)劃如果目標(biāo)函數(shù)和約束能寫成明確的數(shù)學(xué)形式可以直接使用優(yōu)化求解器如MATLAB的linprog,fminconPython的SciPy.optimize或PuLP庫(kù)求解。智能優(yōu)化算法當(dāng)問(wèn)題規(guī)模較大或模型復(fù)雜時(shí)常用遺傳算法GA、模擬退火算法SA等來(lái)尋找近似最優(yōu)解。這些算法代碼實(shí)現(xiàn)有一定套路是數(shù)學(xué)建模競(jìng)賽中的利器。注意很多新手會(huì)忽略“利率”也是決策變量。在優(yōu)化時(shí)利率并非固定不變高利率能帶來(lái)高收益但也會(huì)增加企業(yè)違約風(fēng)險(xiǎn)逆向選擇。有些優(yōu)秀模型會(huì)將利率對(duì)違約概率的影響稱為“風(fēng)險(xiǎn)彈性”考慮進(jìn)去構(gòu)建更復(fù)雜的耦合關(guān)系。2.3 數(shù)據(jù)處理一切模型的基礎(chǔ)題目提供的Excel數(shù)據(jù)通常不會(huì)完美。在建模前必須進(jìn)行數(shù)據(jù)預(yù)處理缺失值處理對(duì)于連續(xù)變量可用均值、中位數(shù)或回歸插值填補(bǔ)對(duì)于分類變量可用眾數(shù)填補(bǔ)。如果某企業(yè)缺失數(shù)據(jù)過(guò)多可能需要考慮將其剔除。異常值處理通過(guò)箱線圖或3σ原則識(shí)別異常值。需要判斷是錄入錯(cuò)誤修正或剔除還是真實(shí)存在的極端情況保留但可能需要穩(wěn)健模型。數(shù)據(jù)標(biāo)準(zhǔn)化/歸一化由于各財(cái)務(wù)指標(biāo)量綱不同如營(yíng)收是百萬(wàn)級(jí)利潤(rùn)率是百分比在計(jì)算綜合評(píng)分前必須進(jìn)行標(biāo)準(zhǔn)化如Z-score標(biāo)準(zhǔn)化或歸一化如Min-Max歸一化使所有指標(biāo)處于同一尺度。指標(biāo)同向化財(cái)務(wù)指標(biāo)有正向如利潤(rùn)率越高越好和負(fù)向如資產(chǎn)負(fù)債率越低越好。在綜合評(píng)分前需將負(fù)向指標(biāo)轉(zhuǎn)化為正向常用方法是用倒數(shù)或取負(fù)數(shù)。3. 核心模塊實(shí)現(xiàn)與源代碼關(guān)鍵點(diǎn)解讀一套完整的源代碼通常會(huì)對(duì)應(yīng)上述建模思路分成幾個(gè)模塊。這里我以Python為例講解關(guān)鍵代碼段背后的邏輯和實(shí)操要點(diǎn)。3.1 數(shù)據(jù)預(yù)處理模塊import pandas as pd import numpy as np from sklearn.preprocessing import StandardScaler, MinMaxScaler # 讀取數(shù)據(jù) data pd.read_excel(附件1企業(yè)數(shù)據(jù).xlsx) # 1. 缺失值處理 - 向前填充對(duì)于時(shí)間序列數(shù)據(jù)用前一年數(shù)據(jù)填充 data_filled data.fillna(methodffill, axis0) # 對(duì)于仍缺失的用列均值填充 data_filled data_filled.fillna(data_filled.mean()) # 2. 異常值處理 - 使用箱線圖原則用上下限截?cái)?def cap_outliers(series): Q1 series.quantile(0.25) Q3 series.quantile(0.75) IQR Q3 - Q1 lower_bound Q1 - 1.5 * IQR upper_bound Q3 1.5 * IQR return series.clip(lower_bound, upper_bound) for col in data_filled.select_dtypes(include[np.number]).columns: data_filled[col] cap_outliers(data_filled[col]) # 3. 數(shù)據(jù)標(biāo)準(zhǔn)化 (為后續(xù)熵權(quán)法、TOPSIS準(zhǔn)備) scaler StandardScaler() data_scaled pd.DataFrame(scaler.fit_transform(data_filled.select_dtypes(include[np.number])), columnsdata_filled.select_dtypes(include[np.number]).columns) # 4. 指標(biāo)同向化 - 假設(shè)資產(chǎn)負(fù)債率是負(fù)向指標(biāo) data_scaled[資產(chǎn)負(fù)債率_正向化] 1 / (data_scaled[資產(chǎn)負(fù)債率] 0.01) # 加0.01防止除零 # 或者使用 max - x 的方法 # data_scaled[資產(chǎn)負(fù)債率_正向化] data_scaled[資產(chǎn)負(fù)債率].max() - data_scaled[資產(chǎn)負(fù)債率]實(shí)操心得數(shù)據(jù)處理沒(méi)有唯一標(biāo)準(zhǔn)。在比賽中你需要在論文中明確陳述你采用的方法及理由。例如選擇“向前填充”是因?yàn)樨?cái)務(wù)數(shù)據(jù)具有時(shí)間連續(xù)性使用箱線圖法處理異常值是因?yàn)槠浣y(tǒng)計(jì)意義明確。代碼的魯棒性很重要比如同向化時(shí)加一個(gè)小的epsilon防止除零錯(cuò)誤。3.2 信用評(píng)價(jià)模塊熵權(quán)法TOPSIS示例def entropy_weight(data): 熵權(quán)法計(jì)算指標(biāo)權(quán)重 data: 標(biāo)準(zhǔn)化后的正向指標(biāo)矩陣行為樣本列為指標(biāo) # 計(jì)算第j個(gè)指標(biāo)下第i個(gè)樣本的比重 P data / data.sum(axis0) # 計(jì)算第j個(gè)指標(biāo)的熵值 epsilon 1e-10 # 防止log(0) e -np.sum(P * np.log(P epsilon), axis0) / np.log(len(data)) # 計(jì)算差異系數(shù) d 1 - e # 計(jì)算權(quán)重 w d / d.sum() return w def topsis(data, weight): TOPSIS法計(jì)算綜合得分 data: 標(biāo)準(zhǔn)化后的正向指標(biāo)矩陣 weight: 各指標(biāo)權(quán)重向量 # 加權(quán)標(biāo)準(zhǔn)化矩陣 weighted_matrix data * weight # 理想解和負(fù)理想解 Z_pos weighted_matrix.max(axis0) Z_neg weighted_matrix.min(axis0) # 計(jì)算距離 D_pos np.sqrt(((weighted_matrix - Z_pos) ** 2).sum(axis1)) D_neg np.sqrt(((weighted_matrix - Z_neg) ** 2).sum(axis1)) # 計(jì)算相對(duì)貼近度即綜合得分 score D_neg / (D_pos D_neg) return score # 假設(shè)我們已經(jīng)有了正向化后的數(shù)據(jù)矩陣 data_positive (DataFrame) # 計(jì)算權(quán)重 weights entropy_weight(data_positive.values) print(各指標(biāo)權(quán)重, weights) # 計(jì)算TOPSIS得分 credit_scores topsis(data_positive.values, weights) data[信用評(píng)分] credit_scores # 根據(jù)評(píng)分進(jìn)行聚類分檔例如K-means分3類 from sklearn.cluster import KMeans kmeans KMeans(n_clusters3, random_state42) data[信用等級(jí)] kmeans.fit_predict(data[[信用評(píng)分]]) # 將聚類標(biāo)簽映射為A,B,C假設(shè)0-C, 1-B, 2-A評(píng)分越高等級(jí)越高 label_map {0: C, 1: B, 2: A} data[信用等級(jí)] data[信用等級(jí)].map(label_map)關(guān)鍵點(diǎn)解讀熵權(quán)法核心是“差異越大權(quán)重越大”。TOPSIS的核心思想是“離理想解越近離負(fù)理想解越遠(yuǎn)越好”。這段代碼清晰地實(shí)現(xiàn)了這個(gè)流程。最后用K-means聚類而不是簡(jiǎn)單分位數(shù)劃分等級(jí)是因?yàn)榫垲惸芨玫匕l(fā)現(xiàn)數(shù)據(jù)內(nèi)在結(jié)構(gòu)使同一等級(jí)內(nèi)企業(yè)性質(zhì)更相似。random_state參數(shù)是為了保證結(jié)果可復(fù)現(xiàn)這在比賽中至關(guān)重要。3.3 信貸策略優(yōu)化模塊線性規(guī)劃示例假設(shè)我們簡(jiǎn)化問(wèn)題利率固定只優(yōu)化貸款分配。我們使用線性規(guī)劃。from scipy.optimize import linprog # 假設(shè)有n家企業(yè) n len(data) # 決策變量每家企業(yè)的貸款額 x_i # 目標(biāo)函數(shù)系數(shù)c -收益系數(shù)。因?yàn)閘inprog默認(rèn)求最小化所以最大化收益需取負(fù)。 # 收益 貸款額 * 利率假設(shè)利率根據(jù)信用等級(jí)已確定存儲(chǔ)在 data[利率] 中 c -data[利率].values # 求最小化 -收益等價(jià)于最大化收益 # 約束條件 # 1. 總貸款額約束sum(x_i) TOTAL_LOAN (e.g., 100,000,000) A_total np.ones((1, n)) b_total [TOTAL_LOAN] # 2. 單戶貸款額約束0 x_i max_loan_i # max_loan_i 可以根據(jù)企業(yè)營(yíng)收的一定比例和信用等級(jí)計(jì)算得出 bounds [(0, max_loan_i) for max_loan_i in data[最大額度].values] # 3. 風(fēng)險(xiǎn)約束sum(x_i * risk_i) MAX_RISK (可選) # risk_i 是違約概率可由信用評(píng)分轉(zhuǎn)換例如 risk_i 1 - normalized_score A_risk data[違約概率].values.reshape(1, n) b_risk [MAX_RISK] # 合并約束 A_ub np.vstack([A_total, A_risk]) # 不等式約束 b_ub np.hstack([b_total, b_risk]) # 求解線性規(guī)劃 res linprog(c, A_ubA_ub, b_ubb_ub, boundsbounds, methodhighs) if res.success: optimal_loan_amounts res.x print(最優(yōu)貸款分配方案, optimal_loan_amounts) print(銀行最大總收益, -res.fun) # 記得取反回來(lái) else: print(優(yōu)化失敗, res.message)注意事項(xiàng)這是一個(gè)極度簡(jiǎn)化的模型?,F(xiàn)實(shí)中利率和違約概率可能隨貸款額變化問(wèn)題會(huì)變成非線性。此時(shí)就需要用到前面提到的遺傳算法。用遺傳算法時(shí)編碼方式很關(guān)鍵如用0/1表示是否貸款用實(shí)數(shù)表示貸款額適應(yīng)度函數(shù)要精心設(shè)計(jì)平衡收益和風(fēng)險(xiǎn)并處理好約束條件如使用罰函數(shù)法。4. 論文寫作要點(diǎn)與常見(jiàn)陷阱有了模型和代碼如何組織一篇優(yōu)秀的論文論文是向評(píng)委展示你思維的載體。4.1 論文核心結(jié)構(gòu)摘要重中之重需用300-500字清晰概括針對(duì)什么問(wèn)題、用了什么方法、建立了什么模型、設(shè)計(jì)了什么算法、得到了什么結(jié)果、有何特色。避免出現(xiàn)公式和圖表引用用精煉的語(yǔ)言講一個(gè)完整的故事。問(wèn)題重述與分析不要照抄題目。用自己的話梳理問(wèn)題的背景、目標(biāo)和約束條件并畫出邏輯框圖闡明解決問(wèn)題的總體思路。模型假設(shè)與符號(hào)說(shuō)明假設(shè)要合理且必要如“假設(shè)宏觀經(jīng)濟(jì)環(huán)境穩(wěn)定”、“假設(shè)數(shù)據(jù)真實(shí)有效”。符號(hào)說(shuō)明用三線表格呈現(xiàn)清晰美觀。模型的建立與求解這是論文主體。對(duì)應(yīng)前面講的“三層模型”分節(jié)論述。每一部分都要有問(wèn)題分析 - 模型建立公式推導(dǎo)- 求解方法/算法設(shè)計(jì) - 結(jié)果分析。將核心代碼以流程圖或偽代碼形式展示關(guān)鍵結(jié)果用圖表呈現(xiàn)。模型的評(píng)價(jià)與推廣分析模型的優(yōu)點(diǎn)創(chuàng)新性、實(shí)用性、穩(wěn)定性和缺點(diǎn)簡(jiǎn)化了哪些現(xiàn)實(shí)因素。提出模型的改進(jìn)方向和在更廣領(lǐng)域的應(yīng)用可能。參考文獻(xiàn)與附錄參考文獻(xiàn)格式要規(guī)范。附錄可放核心代碼不宜過(guò)長(zhǎng)摘取關(guān)鍵部分、大量原始數(shù)據(jù)或中間結(jié)果。4.2 常見(jiàn)問(wèn)題與避坑指南問(wèn)題一模型堆砌邏輯斷裂表現(xiàn)論文中羅列了AHP、熵權(quán)法、TOPSIS、灰色預(yù)測(cè)、神經(jīng)網(wǎng)絡(luò)等多個(gè)模型但讀下來(lái)不知道這些模型之間是什么關(guān)系為什么用這個(gè)不用那個(gè)。對(duì)策建立一條清晰的主線邏輯。例如“首先為了量化企業(yè)信用我們采用客觀的熵權(quán)法確定指標(biāo)權(quán)重并結(jié)合TOPSIS進(jìn)行綜合評(píng)分理由避免主觀性。然后基于評(píng)分采用K-means聚類劃分信用等級(jí)。接著針對(duì)不同等級(jí)設(shè)計(jì)差異化的信貸額度與利率模型。最后在總額度約束下建立以收益最大、風(fēng)險(xiǎn)最小為目標(biāo)的多目標(biāo)優(yōu)化模型并采用線性加權(quán)和法將其轉(zhuǎn)化為單目標(biāo)利用遺傳算法求解?!?每個(gè)模型的引入都要有明確的“承上啟下”的說(shuō)明。問(wèn)題二結(jié)果分析空洞表現(xiàn)只給出“最終銀行收益為XXX元”這樣一個(gè)數(shù)字沒(méi)有分析這個(gè)結(jié)果是否合理沒(méi)有做靈敏度分析。對(duì)策進(jìn)行深入的數(shù)值實(shí)驗(yàn)與靈敏度分析。例如不同權(quán)重方法對(duì)比嘗試AHP和熵權(quán)法比較得出的信用排名差異并討論哪種更合理。參數(shù)敏感性分析改變優(yōu)化模型中的風(fēng)險(xiǎn)厭惡系數(shù)觀察收益和風(fēng)險(xiǎn)如何變化繪制趨勢(shì)圖。這能體現(xiàn)你對(duì)模型的理解深度。場(chǎng)景對(duì)比對(duì)比“完全按信用評(píng)分分配”和“經(jīng)過(guò)優(yōu)化模型分配”兩種策略下的收益結(jié)果突出優(yōu)化模型的價(jià)值。問(wèn)題三代碼與論文脫節(jié)表現(xiàn)論文里寫的是算法A附錄代碼里是另一個(gè)東西或者代碼根本無(wú)法運(yùn)行。對(duì)策代碼必須與論文描述嚴(yán)格對(duì)應(yīng)。在論文關(guān)鍵步驟處可以給出算法的偽代碼或流程圖。提交前務(wù)必在另一臺(tái)干凈的電腦上運(yùn)行一遍所有代碼確保結(jié)果可復(fù)現(xiàn)。附錄的代碼要加上必要的注釋。問(wèn)題四忽視可視化表現(xiàn)通篇文字和表格讓人看得昏昏欲睡。對(duì)策善用圖表。企業(yè)信用得分的分布可以用直方圖或箱線圖不同信用等級(jí)企業(yè)的財(cái)務(wù)指標(biāo)均值可以用雷達(dá)圖對(duì)比優(yōu)化算法的收斂過(guò)程可以用迭代曲線展示最終信貸分配結(jié)果可以用條形圖或餅圖呈現(xiàn)。一圖勝千言。5. 從賽題到實(shí)戰(zhàn)思維延伸這道賽題的價(jià)值遠(yuǎn)不止于獲獎(jiǎng)。它訓(xùn)練的核心能力——數(shù)據(jù)驅(qū)動(dòng)下的決策優(yōu)化——在金融科技、風(fēng)險(xiǎn)管理、供應(yīng)鏈管理等領(lǐng)域是通用的。當(dāng)你掌握了這套方法你可以嘗試更換數(shù)據(jù)找真實(shí)的上市公司財(cái)務(wù)數(shù)據(jù)嘗試構(gòu)建股票投資組合選擇模型。更換場(chǎng)景將“信貸”換成“廣告投放預(yù)算分配”、“研發(fā)項(xiàng)目?jī)?yōu)先級(jí)排序”、“物流中心選址”底層建模邏輯評(píng)價(jià)-排序-優(yōu)化是相通的。深化模型引入更復(fù)雜的機(jī)器學(xué)習(xí)模型進(jìn)行信用預(yù)測(cè)如LightGBM使用隨機(jī)優(yōu)化或魯棒優(yōu)化來(lái)處理不確定性甚至嘗試用強(qiáng)化學(xué)習(xí)來(lái)模擬動(dòng)態(tài)的信貸決策過(guò)程。我個(gè)人的體會(huì)是數(shù)學(xué)建模競(jìng)賽最寶貴的不是那個(gè)獎(jiǎng)狀而是在高壓下與隊(duì)友一起將一個(gè)模糊的現(xiàn)實(shí)問(wèn)題抽象、分解、建模、求解并清晰表達(dá)出來(lái)的完整經(jīng)歷。這個(gè)過(guò)程里踩過(guò)的每一個(gè)坑解決的每一個(gè)bug都會(huì)讓你對(duì)“如何用數(shù)學(xué)和編程解決實(shí)際問(wèn)題”有更深一層的肌肉記憶。所以不要只滿足于看懂別人的論文和代碼一定要親手把整個(gè)流程實(shí)現(xiàn)一遍遇到問(wèn)題自己去查、去調(diào)、去和隊(duì)友爭(zhēng)論這才是成長(zhǎng)最快的方式。最后一個(gè)小建議組隊(duì)時(shí)最好能有分別擅長(zhǎng)建模、編程和寫作的隊(duì)友分工明確又緊密協(xié)作是成功的關(guān)鍵。本文還有配套的精品資源點(diǎn)擊獲取