python評分卡
㈠ 關於機器學習應用不得不思考哪些問題
機器學習是一種能夠賦予機器學習的能力以此讓它完成直接編程無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然後使用模型預測的一種方法。
讓我們具體看一個例子。
圖4房價的例子
拿國民話題的房子來說。現在我手裡有一棟房子需要售賣,我應該給它標上多大的價格?房子的面積是100平方米,價格是100萬,120萬,還是140萬?
很顯然,我希望獲得房價與面積的某種規律。那麼我該如何獲得這個規律?用報紙上的房價平均數據么?還是參考別人面積相似的?無論哪種,似乎都並不是太靠譜。
我現在希望獲得一個合理的,並且能夠最大程度的反映面積與房價關系的規律。於是我調查了周邊與我房型類似的一些房子,獲得一組數據。這組數據中包含了大大小小房子的面積與價格,如果我能從這組數據中找出面積與價格的規律,那麼我就可以得出房子的價格。
對規律的尋找很簡單,擬合出一條直線,讓它「穿過」所有的點,並且與各個點的距離盡可能的小。
通過這條直線,我獲得了一個能夠最佳反映房價與面積規律的規律。這條直線同時也是一個下式所表明的函數:房價=面積*a+b
上述中的a、b都是直線的參數。獲得這些參數以後,我就可以計算出房子的價格。
假設a=0.75,b=50,則房價=100*0.75+50=125萬。這個結果與我前面所列的100萬,120萬,140萬都不一樣。由於這條直線綜合考慮了大部分的情況,因此從「統計」意義上來說,這是一個最合理的預測。
在求解過程中透露出了兩個信息:
1.房價模型是根據擬合的函數類型決定的。如果是直線,那麼擬合出的就是直線方程。如果是其他類型的線,例如拋物線,那麼擬合出的就是拋物線方程。機器學習有眾多演算法,一些強力演算法可以擬合出復雜的非線性模型,用來反映一些不是直線所能表達的情況。
2.如果我的數據越多,我的模型就越能夠考慮到越多的情況,由此對於新情況的預測效果可能就越好。這是機器學習界「數據為王」思想的一個體現。一般來說(不是絕對),數據越多,最後機器學習生成的模型預測的效果越好。
通過我擬合直線的過程,我們可以對機器學習過程做一個完整的回顧。首先,我們需要在計算機中存儲歷史的數據。接著,我們將這些數據通過機器學習演算法進行處理,這個過程在機器學習中叫做「訓練」,處理的結果可以被我們用來對新的數據進行預測,這個結果一般稱之為「模型」。對新數據的預測過程在機器學習中叫做「預測」。「訓練」與「預測」是機器學習的兩個過程,「模型」則是過程的中間輸出結果,「訓練」產生「模型」,「模型」指導「預測」。
㈡ python評分卡之LR及混淆矩陣、ROC
import pandas as pd
import numpy as np
from sklearn import linear_model
# 讀取數據
sports = pd.read_csv(r'C:\Users\Administrator\Desktop\Run or Walk.csv')
# 提取出所有自變數名稱
predictors = sports.columns[4:]
# 構建自變數矩陣
X = sports.ix[:,predictors]
# 提取y變數值
y = sports.activity
# 將數據集拆分為訓練集和測試集
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size = 0.25, random_state = 1234)
# 利用訓練集建模
sklearn_logistic = linear_model.LogisticRegression()
sklearn_logistic.fit(X_train, y_train)
# 返回模型的各個參數
print(sklearn_logistic.intercept_, sklearn_logistic.coef_)
# 模型預測
sklearn_predict = sklearn_logistic.predict(X_test)
# 預測結果統計
pd.Series(sklearn_predict).value_counts()
-------------------------------------------------------------------------------------------------------------------------------------------
# 導入第三方模塊
from sklearn import metrics
# 混淆矩陣
cm = metrics.confusion_matrix(y_test, sklearn_predict, labels = [0,1])
cm
Accuracy = metrics.scorer.accuracy_score(y_test, sklearn_predict)
Sensitivity = metrics.scorer.recall_score(y_test, sklearn_predict)
Specificity = metrics.scorer.recall_score(y_test, sklearn_predict, pos_label=0)
print('模型准確率為%.2f%%:' %(Accuracy*100))
print('正例覆蓋率為%.2f%%' %(Sensitivity*100))
print('負例覆蓋率為%.2f%%' %(Specificity*100))
-------------------------------------------------------------------------------------------------------------------------------------------
# 混淆矩陣的可視化
# 導入第三方模塊
import seaborn as sns
import matplotlib.pyplot as plt
# 繪制熱力圖
sns.heatmap(cm, annot = True, fmt = '.2e',cmap = 'GnBu')
plt.show()
------------------------------------------------------------------------------------------------------------------------------------------
# 繪制ROC曲線
# 計算真正率和假正率
fpr,tpr,threshold = metrics.roc_curve(y_test, sm_y_probability)
# 計算auc的值
roc_auc = metrics.auc(fpr,tpr)
# 繪制面積圖
plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black')
# 添加邊際線
plt.plot(fpr, tpr, color='black', lw = 1)
# 添加對角線
plt.plot([0,1],[0,1], color = 'red', linestyle = '--')
# 添加文本信息
plt.text(0.5,0.3,'ROC curve (area = %0.2f)' % roc_auc)
# 添加x軸與y軸標簽
plt.xlabel('1-Specificity')
plt.ylabel('Sensitivity')
plt.show()
-------------------------------------------------------------------------------------------------------------------------------------------
#ks曲線 鏈接:https://www.jianshu.com/p/b1b1344bd99f 風控數據分析學習筆記(二)Python建立信用評分卡 -
fig, ax = plt.subplots()
ax.plot(1 - threshold, tpr, label='tpr')# ks曲線要按照預測概率降序排列,所以需要1-threshold鏡像
ax.plot(1 - threshold, fpr, label='fpr')
ax.plot(1 - threshold, tpr-fpr,label='KS')
plt.xlabel('score')
plt.title('KS Curve')
plt.ylim([0.0, 1.0])
plt.figure(figsize=(20,20))
legend = ax.legend(loc='upper left')
plt.show()
㈢ 請問Python哪家培訓機構好
隨著Python的普及,越來越多的人了解Python,企業也會對求職者提出更高的要求,他們想招聘一些能馬上開始工作的人,所以往往會招聘一些有項目開發經驗的人。這就是為什麼那麼多計算機專業的大學生找不到工作,所以越來越多的大學生會選擇在畢業前後參加一些專業的Python培訓課程,以增加他們的實踐經驗。只有增強自己的力量,才能立於不敗之地。
Python培訓機構哪家比較好?判斷Python培訓機構好與壞主要看以下幾個方面
1.看教學課程內容
學習Python技術,最主要是與時俱進,掌握的技術點能夠滿足時下企業的用人需求。而想要了解一家培訓機構所提供的課程是否新穎,也可以去機構的官網上看看,了解自己想學習的學科的課程大綱。看看學習路線圖是如何安排的,有沒有從零到一的系統搭建,是不是有強化實訓、實操的比重,有盡量多的項目實戰。因為企業對Python從業者的技術能力和動手實戰能力要求較高。
2.看師資力量
因為Python開發技術知識的專業性很強,如果盲目去學很容易走進誤區。相反,有講師帶領,站在巨人的肩膀上,往往事半功倍。畢竟現在這個時代只要多跟別人交流才能獲得更多更有價值的信息,初學者千萬不能閉門造車。
3.看口碑
行業內口碑比較好,學生對培訓機構比較認可,這種機構把精力放在了學生身上的機構,才是做教育的應有態度。
4.看就業情況
以學生就業為目標的培訓機構現在才是最主要的。要知道就業也是教學成果的體現,沒有好的教學保證是做不到好的就業的。
5.上門免費試聽
試聽是為了更好的去感受培訓機構的課程內容、講課風格、班級氛圍等,同時也能通過和班上在讀同學進行交流,更進一步去了解這家培訓機構各個方面是否符合自己的需要。
㈣ python 有沒有smbinning
R包有 smbinning CRAN - Package smbinning
SAS中 這本 信用風險評分卡研究 (豆瓣) P140 有提及 SAS 實現自動分箱的宏,SAS代碼在書本的附錄。
還有這里講解了決策樹的三個處理方法,自動分箱的原理基本就是利用決策樹做單變數的分支 Decision Tree Algorithms !