01. 聊啥
Python + ?(帶你嘗甜點)
前段時間咱們聊過一次 Python,不知道大家是否還有印象,再稍微提一提。
Python 是一種膠水語言,可以粘很多家伙,例如:Python + 網(wǎng)站開發(fā)、Python + 自動化測試、Python + 自動化運維、Python + AI、Python + 數(shù)據(jù)分析 ... ...
一眼看上去 Python 確實能干很多,但是掌握 Python 固然重要,往往最重要的還是如何掌握 Python + 后面的家伙,如果只會 Python,那么也就只能寫點小工具,小打小鬧、滿足一下自己一時的求知欲而已。
AI 為業(yè)務(wù)賦能的實踐(帶你吃大餐)
從事金融的,尤其是做過金融風(fēng)控的都知道,如果能提前定位貸款客戶是否為壞客戶?如果能提前預(yù)測貸款客戶下個月還款是否會逾期?那么將會把風(fēng)險降低,平臺也止損。
面對諸如此類的業(yè)務(wù)場景,機器學(xué)習(xí)能做什么呢?
其實近期我一直在摸索,用機器學(xué)習(xí)去解決業(yè)務(wù)場景,小有成果。下面簡單總結(jié)一下摸索的過程,我自己也做個總結(jié),同時也預(yù)防你們掉坑,順道也給聰明的小白們,填補填補大腦認知的空白。
吃個核桃,坐穩(wěn),扶好,我們開始。
02. 開聊
站在高處看,一覽無余

結(jié)合近期的親自實踐,簡單畫了個圖,主要分五大步完成信貸逾期風(fēng)控模型。
數(shù)據(jù)處理。主要是獲取完成信貸逾期風(fēng)控模型,所需要的表對應(yīng)的數(shù)據(jù),實踐中全部保存成 csv 文件;然后進行單個表數(shù)據(jù)清洗操作,去除重復(fù)、沒有意義的字段,清洗完成后存儲為一系列的 xx_clean.csv 文件。
數(shù)據(jù)合并。主要是采用 python 提供的 pandas 來完成一系列的 xx_clean.csv 的 join 關(guān)聯(lián)合并,形成一張數(shù)據(jù)表,存儲為xx_merge.csv 文件,并針對關(guān)聯(lián)之后的文件去除重復(fù)的字段。
特征處理。這一步應(yīng)該是最難的,因為需要靠經(jīng)驗值來篩選哪些字段進行參與模型訓(xùn)練,如果有經(jīng)驗的人士,篩選出特征字段,那么接下來就進行特征字段的缺失值、異常值處理;然后優(yōu)先按照最優(yōu)分箱進行數(shù)據(jù)分箱,如果最優(yōu)的分的不夠理想,那么就選擇等距進行分箱(看不懂沒關(guān)系,下次再提這個詞,知道在一猿小講聽過就算成功)。
模型訓(xùn)練。首先把數(shù)據(jù)按照三、七分成測試集、訓(xùn)練集,接著把數(shù)據(jù)集代入模型去訓(xùn)練,為了找出最優(yōu)模型,實踐的時候把所有模型都跑了一下。
模型評估。針對模型跑出的結(jié)果進行評估,為了讓產(chǎn)品以及 BOSS 一眼能看懂,采用 matplotlib.pyplot 進行畫圖。
用到了哪些技術(shù)
Pandas 是 Python 的一個數(shù)據(jù)分析包。在項目中主要用于讀寫 csv 文件;兩個DataFrame之間的合并、分組等等。其實用起來,類似 SQL 的操作,但是用起來超級簡單,功能卻比較強大、效果超級震撼。如果你有數(shù)據(jù)相關(guān)的操作,不妨拿去一用。
Sklearn 是機器學(xué)習(xí)中常用的第三方模塊,對常用的機器學(xué)習(xí)方法進行了高級封裝,能夠讓我們跳出數(shù)學(xué)的夢魘進行機器學(xué)習(xí)實踐,大家都可以選擇它作為入門的跳板。
NumPy 是 Python 語言的一個擴展程序庫,提供強大的N維數(shù)組及相關(guān)操作的庫。
Matplotlib 是 Python 的繪圖庫,可以說分分鐘畫出高大尚的圖,讓你的實現(xiàn)結(jié)果不單調(diào),更直觀的分析。如果你平時有畫圖的場景需求,不妨也嘗試一下,因為之前的監(jiān)控項目也是用這個畫的,確實也很強大的。
一切技術(shù)都是紙老虎,打破紙老虎的方式莫過于親身實踐。
如果上面的都沒有看懂,也沒有跟上,一切都沒有關(guān)系,因為下面我將帶你們一起“入門”機器學(xué)習(xí)。
03. 帶你入門(鳶尾花)
“鳶” 這個字怎么讀(??)?
鳶尾花可以被分為 setosa、versicolor、virginica 三個品種,現(xiàn)在跟著我的思路,一步一步來實現(xiàn):輸入特定數(shù)據(jù)判定花是屬于哪一類。
#第一步: 獲取數(shù)據(jù)
from sklearn.datasets import load_iris
iris_data = load_iris()
#第二步: 拆分數(shù)據(jù)集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(iris_data['data'],iris_data['target'], random_state=0)
#第三步: 構(gòu)建模型
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(x_train, y_train)
#第四步: 模型訓(xùn)練評估,輸出準(zhǔn)確率
y_pred = knn.predict(x_test)
print("test set score:{:.2f}".format(knn.score(x_test, y_test)))
#第五步: 預(yù)測,四個數(shù)據(jù)分別代表:花萼長度,花萼寬度,花瓣長度,花瓣寬度
newIRIS = [[4,1.0,2,1.0]]
pred = knn.predict(newIRIS)
print("predict target name: {}".format(iris_data['target_names'][pred]))
結(jié)果輸出:
準(zhǔn)確率為: 0.97
花的品種為: ['setosa']
到這,你們也一只腳邁進了機器學(xué)習(xí)的門檻,也不再是小白啦。其實細心的你們可以發(fā)現(xiàn),python 代碼其實也很簡練,其實代碼也不復(fù)雜,主要都是類庫的使用,所以一切技術(shù)都是紙老虎,你們莫怕莫怕。
04. 寫在最后
技術(shù)用啥語言實現(xiàn)不重要,重要的是思想、重要的是思想、重要的是思想(重要的事說三遍)。
還是那句話:技術(shù)不要逐個深入,但是要了解。尤其是從事技術(shù)管理者,在決策技術(shù)實現(xiàn)方案的時候肯定會有大幫助。
如果你是 python 小白,也不用懼怕,偶爾跳出日常忙碌的系統(tǒng),站在系統(tǒng)之外,了解一下新思想,也未嘗不可。
最后如果你也從事相關(guān)的工作,不妨按照實現(xiàn)思路落地一下,說不定領(lǐng)導(dǎo)會很喜歡,升職加薪指日可待。
人工智能時代,終身學(xué)習(xí)也是必然的,只要不停下學(xué)習(xí)的腳步,只要勤澆水,夢想終會長大。


