數(shù)據(jù)挖掘?qū)崙?zhàn)課程
簡單線性回歸
- 概念:Regression Analysis
研究自變量與因變量直接的關(guān)系形式的分析方法,建立因變量y與自變量x_i之間的回歸模型,來預(yù)測因變量y的發(fā)展趨勢(shì)。
分類
- 線性回歸
- 簡單線性回歸
- 多重線性回歸
- 非線性回歸
- 邏輯回歸
- 神經(jīng)網(wǎng)絡(luò)
簡單線性回歸
暨 y = a + bx + e(殘差,隨機(jī)誤差)
- 根據(jù)預(yù)測目標(biāo),確定因變量和自變量
- 繪制散點(diǎn)圖,確定回歸模型類型[相關(guān)系數(shù)]
- 估計(jì)模型參數(shù),建立回歸模型
- 對(duì)回歸模型進(jìn)行檢驗(yàn)
- 利用回歸模型進(jìn)行預(yù)測
對(duì)回歸模型進(jìn)行檢驗(yàn)
回歸方程的精度就是用來表示實(shí)際觀測點(diǎn)和回歸方程的擬合程度的指標(biāo),使用判定系數(shù)來度量。
判定系數(shù)為$jc $,相關(guān)系數(shù)$R$
jc= R^2 = \frac{ESS}{TSS}=1-\frac{RSS}{TSS}
其中,
$TSS=\Sigma(Y_i-\overline{Y})^2$總離差平方和
$ESS=\Sigma(\overline{Y_i}-\overline{Y})^2$回歸平方和
$RSS=\Sigma(Y_i-\overline{Y_i})^2$殘差平方和
總結(jié)
- 建立模型 lrModel = sklearn.linear_model.LinearRegression()
- 訓(xùn)練模型 lrModel.fit(x,y)
- 模型評(píng)估 lrModel.score(x,y)
- 模型預(yù)測 lrModel.predict(x)
多重線性回歸
Multiple Linear Regression
y = \alpha + \beta_1 x_1 + \beta_2 x_2 + ... + + \beta_n x_n + e
$\beta_n$偏回歸系數(shù),
$e$隨機(jī)誤差
步驟與簡單線性回歸一致
- 根據(jù)預(yù)測目標(biāo),確定因、自變量
- 繪制散點(diǎn)圖,確定回歸模型
- 估計(jì)模型參數(shù),建立回歸模型
- 對(duì)回歸模型中進(jìn)行檢驗(yàn)
判定系數(shù)$R$
R^2 = \frac{ESS}{TSS}=1-\frac{RSS}{TSS}
修正為
\bar{R}^2 = 1-\frac{RSS/(n-k-1)}{TSS/(n-1)}
$TSS=\Sigma(Y_i-\overline{Y})^2$總離差平方和
$ESS=\Sigma(\overline{Y_i}-\overline{Y})^2$回歸平方和
$RSS=\Sigma(Y_i-\overline{Y_i})^2$殘差平方和
$n$ 樣本個(gè)數(shù),
$K$ 自變量個(gè)數(shù)
pandas.tools.plotting.scatter_matrix(matrix,figsize,diagonal)
一元非線性回歸
Univariate Nonlinear Regression
即一元N次方程,一般轉(zhuǎn)換為多元一次回歸方程
pf = sklearn.preprocessing.PolynomialFeatures(degree = 2)
x_2_fit = pf.fit_transform(x)
邏輯回歸
Logistic Regression
分類變量的回歸分析,概率型非線性回歸
- 優(yōu)點(diǎn):易實(shí)現(xiàn)部署,執(zhí)行效率和準(zhǔn)確度高
- 確定:離散型的自變量需要通過生成虛擬變量的方式來使用
Sigmoid函數(shù)
g(x) = \frac{1}{1+e^{-x}}
Logistic Regression Equation
g(y) = \frac{1}{1+e^{-y}}
g(x_1,x_2,x_n) = \frac{1}{1+e^{-f(x_1,x_2,x_n)}}
= \frac{1}{1+e^{-(\alpha_1 x_1+\alpha_2 x_2+...+\alpha_n x_n)}}
虛擬變量
dummy variables, 也叫啞變量和離散特征編碼,可用來表示分類變量、非數(shù)量因素可能產(chǎn)生的影響
- 尺寸:有大小意義的
- 顏色:無大小意義的
有大小意義的,利用dict處理
pandas.Series.map(dict)
神經(jīng)網(wǎng)絡(luò)
Aritificial Neural Network
人工神經(jīng)網(wǎng)絡(luò),數(shù)學(xué)模型or計(jì)算模型
非線性統(tǒng)計(jì)建模
$x_i$ -> $w_i$ ->
$g(\Sigma^n_{i=0} x_i w_i)$
->$y$
f(x_0,x_1,x_2,...,x_n) = \Sigma^{n}_{i=0}{x_i w_i}
g(f(x_0,x_1,x_2,...,x_n))
= g(\Sigma^{n}_{i=0}{x_i w_i})
= \frac{1}{1+e^{-(\Sigma^{n}_{i=0}{x_i w_i})}}
復(fù)雜神經(jīng)網(wǎng)絡(luò):多層
- 輸入層
- 隱藏層
- 輸出層
sklearn.neural_network.MLPClassifier
activation 激活函數(shù)
分類
- 概念學(xué)習(xí)
- 監(jiān)督學(xué)習(xí)
- 無監(jiān)督學(xué)習(xí)
分類算法:一般屬于監(jiān)督學(xué)習(xí)
- 無監(jiān)督學(xué)習(xí)
KNN
K Nearest Neighbors
交叉驗(yàn)證(cross validation)
- 訓(xùn)練集(Train Set)
- 測試集(Test Set)
K-fold Cross Validation
綜合得分為$\frac{\Sigma^{10}_{i=1}S_i}{10}$
iris數(shù)據(jù)集:多重變量數(shù)據(jù)集,花卉
測試、訓(xùn)練 一般三七分
neighbors.KNeighborsClassifier
貝葉斯分類算法
Bayes Theorem
P(A|B) = \frac{P(A \cap B)}{P(B)} = \frac{P(B|A)P(A)}{P(B)}
樸素貝葉斯分類:以生病預(yù)測來說明
sklearn.naive_bayes
- GaussinaNB 高斯
- BernoulliNB 伯努利
- MultinomialNB 多項(xiàng)式
決策樹
Decision Tree
有監(jiān)督學(xué)習(xí),可處理數(shù)值型和非數(shù)值型
pydot,graphviz-2.38
樹結(jié)構(gòu)的規(guī)模:由葉子數(shù)量來控制
sklearn.tree.export_graphviz()
- dtModel
- out_file
- class_names
- feature_names
- filled
- rounded = True
- special_characters
隨機(jī)森林
RandomForest
包含多個(gè)決策樹的分類器
優(yōu)點(diǎn):
- 適合離散型和連續(xù)性的屬性數(shù)據(jù)
- 對(duì)海量數(shù)據(jù),盡量避免了過度擬合的問題
- 對(duì)高緯度數(shù)據(jù),不會(huì)出現(xiàn)特征選擇困難的問題
- 實(shí)現(xiàn)簡單,訓(xùn)練速度快,適合分布式計(jì)算
rfcModel = RandomForestClassifier(
n_estimators = 10,
max_leaf_nodes = None
)
SVM
Support Vector Machine
svm.SVC(), svm.NuSVC(), svm.LinearSVC()