建模方法流程

2021-08-21 10:53:09 字數 3376 閱讀 4145

確定建模的目標:是分類問題還是回歸問題或是無監督學習問題

對資料進行分析

資料探勘之特徵工程

特徵工程的意義

資料採集

資料清洗

資料取樣

正負樣本不均衡處理辦法

特徵處理

特徵處理之數值型

特徵處理之類別型

特徵處理之時間型

離散值

特徵選擇主要有兩個功能:

單變數特徵選擇

單變數特徵選擇能夠對每乙個特徵進行測試,衡量該特徵和響應變數之間的關係,根據得分扔掉不好的特徵。對於回歸和分類問題可以採用卡方檢驗等方式對特徵進行測試

import numpy as np

from scipy.stats import pearsonr

np.random.seed(0)

size = 300

x = np.random.normal(0, 1, size)

print "lower noise", pearsonr(x, x + np.random.normal(0, 1, size))

print "higher noise", pearsonr(x, x + np.random.normal(0, 10, size))

當雜訊資料較小的時候,相關性很強,p-value很低。

但是pearson相關係數的乙個明顯缺陷是,它只對線性關係敏感,如果關係是非線性的,即便兩個變數具有一一對應的關係,相關性也可能會接近0

x = np.random

.uniform(-1, 1, 100000)

print pearsonr(x, x**2)[0]

mutual information,縮寫為mi,表示兩個變數x與y是否有關係,以及關係的強弱,互資訊的公式:

百科介紹:

使用隨機森林對單變數進行選擇:

from sklearn.cross_validation import cross_val_score, shufflesplit

from sklearn.datasets import load_boston

from sklearn.ensemble import randomforestregressor

#load boston housing dataset as an example

boston = load_boston()

x = boston["data"]

y = boston["target"]

names = boston["feature_names"]

rf = randomforestregressor(n_estimators=20, max_depth=4)

scores =

for i in range(x.shape[1]):

score = cross_val_score(rf, x[:, i:i+1], y, scoring="r2",

cv=shufflesplit(len(x), 3, .3))

print sorted(scores, reverse=true)

正則化就是把額外的約束或者懲罰項加到已有模型損失函式上,以防止過擬合併提高泛化能力。當用線性模型上時,l1正則化和l2正則化也稱為lasso 和ridge

from sklearn.linear_model import linearregression

import numpy as np

from sklearn.linear_model import lasso

from sklearn.preprocessing import standardscaler

from sklearn.datasets import load_boston

boston = load_boston()

scaler = standardscaler()

x = scaler.fit_transform(boston["data"])

y = boston["target"]

names = boston["feature_names"]

defpretty_print_linear

(coefs, names = none, sort = false):

if names == none:

names = ["x%s" % x for x in range(len(coefs))]

lst = zip(coefs, names)

if sort:

lst = sorted(lst, key = lambda x:-np.abs(x[0]))

return

" + ".join("%s * %s" % (round(coef, 3), name)

for coef, name in lst)

lasso = lasso(alpha=.3)

lasso.fit(x, y)

print

"lasso model: ", pretty_print_linear(lasso.coef_, names, sort = true)

可以看到,很多特徵的係數都是 0 ,如果繼續增加alpha的值,得到的模型就會越來越稀疏

隨機森林具有準確率高、魯棒性強、易於使用等優點,隨機森林提供了兩種特徵選擇的方法:mean decrease impurity和mean decrease accuracy

from sklearn.datasets import load_boston

from sklearn.ensemble import randomforestregressor

import numpy as np

#load boston housing dataset as an example

boston = load_boston()

x = boston["data"]

y = boston["target"]

names = boston["feature_names"]

rf = randomforestregressor()

rf.fit(x, y)

print

"features sorted by their score:"

print sorted(zip(map(lambda x: round(x, 4), rf.feature_importances_), names),

reverse=true)

參考:

XML建模整個流程

一 包名命名規範 網域名稱反寫 專案名稱 模組名稱 例如 二 怎樣去建模呢?1.需要將xml中所有的標籤都要進行建模 有多少個標籤就建多少個實體類 2.在建模時,從裡到外建,原因是外層依賴內層 三 命名規範 forwardmodel 帕斯卡 作用 於類名 forwardmodel 駝峰 作用於 屬性...

一 TensorFlow的建模流程

儘管tensorflow設計上足夠靈活,可以用於進行各種複雜的數值計算。但通常人們使用tensorflow來實現機器學習模型,尤其常用於實現神經網路模型。從原理上說可以使用張量構建計算圖來定義神經網路,並通過自動微分機制訓練模型。但為簡潔起見,一般推薦使用tensorflow的高層次keras介面來...

風控建模整體流程

1.確定建模目的 在信貸領域中建立風控模型是為了找出可能會逾期的客戶,根據逾期的可能性和資金的鬆緊程度選擇是否放貸。在支付領域建立風控模型是為了找出可能存在非法經營的商戶,保證商戶沒有違法經營。2.確定好壞樣本邏輯 在信貸領域中逾期大於x期 不同公司取值不同 的客戶定義為壞客戶 1 從未逾期的客戶定...