挖掘建模

挖掘建模算法

  • 通過數據探索於數據預處理,獲得了能夠直接建模的數據..根據挖掘目標和數據形式能夠創建分類與預測,聚類分析,關聯規則,時序模式和誤差檢測等模型.幫助企業提取數據彙總蘊含得商業價值,提升企業得競爭力.
  • 分類和預測問題得兩種主要類型,分類主要是預測分類標號(離散屬性),而預測主要是創建連續值函數模型,預測給定自變量對應得因變量得值
  • 實現過程:
    1. 分類:
      1. 分類是構造一個分類模型,輸入樣本得屬性值,輸出對應得類別,將每一個樣本映射到預先定義好 得類別.
      2. 分類模型創建再已有類標記得數據集上,模型再已有樣本上得準確率能夠方便得計算,因此分類屬於有監督得學習.
    2. 預測
      1. 預測是指創建兩種或兩種以上變量相互依賴得函數模型(線性迴歸...),而後進行預測或控制
    3. 實現過程:
      1. 分類和預測得實行過程相似,
      2. 分類算法有兩步過程:第一步是學習步,經過概括分析訓練樣本集來創建分類規則;第二步是分類步,先用已知得測試樣本集評估分類規則得準確率,若是準確率是能夠接受的,則使用該模型對未知類標號的待測樣本集進行預測.
      3. 預測模型的實現也有兩步,第一步是經過訓練集創建預測屬性(數值型)的函數模型,第二步再模型經過檢驗後進行預測或控制
  • 經常使用的分類與預測算法
  • 算法名稱
    算法描述
    迴歸分析 迴歸分析是肯定預測屬性(數值型)與其餘變量之間相互依賴的定量關係最經常使用的統計學方法,包括線性迴歸,非線性迴歸,Logistic迴歸,嶺迴歸,主成分迴歸,偏最小二乘迴歸等模型
    決策樹 決策樹採用自頂向下的傳遞方式,在內部節點機型屬性值的比較,並根據不一樣的屬性值,從該節點向下分支,最終獲得的葉節點是學習劃分的類
    人工神經網絡 人工神經網絡是一種模仿大腦神經網絡結構和功能而創建的信息處理系統,表示神經網絡的輸入輸出變量之間關係模型
    貝葉斯網絡 貝葉斯網絡又稱信度網絡,是bayes方法的擴展,是目前不肯定是指表達和推理領域最有效的理論模型之一
    支持向量機 支持向量機是一種經過某種非線性映射,把低維的非線性可轉化爲高維的線性可分,在高維空間進行線性分析的算法
  • 迴歸分析:網絡

    • 迴歸分析是經過創建模型來研究變量之間相互關係的模切程度,結構狀態及進行模型預測的一種有效的工具,在工商管理,經濟,社會,醫學和生物學等領域應用十分普遍.從19世紀初高斯提出最小二乘估計起,迴歸分析已有200多年,從經典的迴歸分析到近代的迴歸分析方法.
    • 迴歸模型名稱
      使用條件
      算法模型
      線性迴歸 因變量與自變量是線性關係 對一個或多個自變量和因變量之間的線性關係進行建模,可用最小二乘法求解模型係數
      非線性迴歸 因變量與自變量之間都是線性關係 對一個或多個自變量和因變量之間的非線性關係進行建模.若是非線性關係能夠經過簡單的函數變換轉化成線性關係,用線性迴歸的思想求解;若是不能轉化,用非線性最小二乘方法求解
      Logistic迴歸 因變量通常有1和0(是否)兩種取值 是廣義線性迴歸模型的特例,利用Logistic函數將因變量的取值範圍控制在0和1之間,表示取值爲1的機率
      嶺迴歸 參與建模的自變量之間具備多重共線性 是一種改進最小二乘估計的方法
      主成分迴歸 參與建模的自變量之間具備多重共線性 主成分迴歸是根據主成分分析思想提出來的,是對最小二乘法的一種改進,它是參數估計的一種有偏估計.能夠消除自變量之間的多重共線
    • 線性迴歸模型是相對簡單的迴歸模型,可是一般因變量和自變量之間呈現某種曲線關係,就須要創建非線性迴歸模型
    • Logistic迴歸屬於機率型非線性迴歸,分爲二分類和多分類的迴歸模型.對於二分類和多分類的迴歸模型.對於二分類的Logistic迴歸,因變量y只有"是,否"兩個取值,記爲1和0.假設在自變量x1,x2,...xp做用下,y取"是"的機率是p,則取"否"的機率是1-p,研究的是當y取"是"發生的機率p與自變量x1,x2,...xp的關係
    • 當自變量之間出現多重共線性時,用最小二乘估計的迴歸係數將會不許確,消除多重共線性的參數改進的估計方法主要有嶺迴歸和主成分迴歸.
    • Logistic迴歸分析介紹
      • Logistic迴歸模型中的因變量的只有1-0(若是是否,發生和不發生)兩種取值.假設在p個獨立自變量x1,x2,...xp做用下,記y取1的機率是p=P(y=1|X),取0機率是1-p,取1和和取0的機率之比爲p/(1-p)稱爲事件的優點比,對odds取天然對數即得Logistic變換
      • 當p在(0,1)之間變換時,odds的取值範圍是(0,+œ),則ln(p/1-p)的取值範圍是(-œ, +œ).
    • Logistic(迴歸模型)
      • Logistic迴歸模型是創建ln(p/1-p)與自變量的線性迴歸模型.
      • Logistic迴歸模型爲:
        • ln(p/1-p) = ß0 + ß1 + ß2 + ß3 + ... + ßpxp + ε
        • 由於ln(p/1-p)的取值範圍是(-œ, +œ),這樣,自變量x1,x2,x3,...xp可在任意範圍內取值.
      • Logistic迴歸模型的解釋
        • β0:在沒有自變量,即x1,x2,x3,...,xp所有取0,y=1與y=0發生機率之比的天然對數
        • β1:某自變量xi變化時,即xi = 1, 與xi=0相比,y=1優點比的對數
    • # -*- coding:utf-8 -*-
      
      import sys
      
      reload(sys)
      sys.setdefaultencoding("utf-8")
      
      """
      邏輯迴歸,自動建模
      """
      
      import pandas as pd
      data = pd.read_csv("./bankloan.csv")
      
      x = data.iloc[:,:8].as_matrix()
      print("x",x)
      y = data.iloc[:5].as_matrix()
      print("y",y)
      
      from sklearn.linear_model import LogisticRegression as LR  # 爲何????
      from sklearn.linear_model import RandomizedLogisticRegression as RLR
      
      rlr = RLR()  # 創建隨機邏輯迴歸模型, 篩選變量
      rlr.fit(x, y)  # 訓練模型(這是把x,y這兩個參數進行訓練)
      
      rlr._get_support_mask()  # 獲取篩選特徵結果,也能夠經過.scores_方法獲取各個特徵的分數
      print(u'經過隨機邏輯迴歸模型篩選特徵結束')
      print(u'有效特徵爲:%s' % ",".join(data.columns[rlr._get_support_mask()]))
      
      x = data[data.columns[rlr._get_support_mask()]].as_matrix()  # 篩選好特徵
      
      lr = LR()  # 創建邏輯迴歸模型
      lr.fit(x, y)  # 用篩選好後的特徵數據來訓練模型
      print(u'邏輯迴歸模型訓練結束.')
      print(u'模型的平均正確率爲:%s' % lr.score(x, y))  # 給出模型的平均正確率

       

      • 遞歸特徵消除的主要思想是反覆的構建模型(如SVM或者回歸模型)而後選出最好的(或者最差的)特徵(能夠根據係數來選),把選出來的特徵放到一邊,而後在剩餘的特徵上重複這個過程,直到遍歷全部特徵,這個過程當中特徵白消除的次序就是特徵的排序,所以,這是一種尋找最優特徵子集的貪心算法.Scikit-Learn提供了REF包,能夠用於特徵消除,還提供了RFECV,能夠經過交叉驗證來對特徵進行排序
      • 穩定性選擇是一種基於二次抽樣和選擇算法相結合較新的方法,選擇算法能夠是迴歸SVM或其餘相似的方法.它的主要思想是在不一樣的數據子集和特徵子集上運行特徵選擇算法,不斷重複,最終彙總特徵選擇結果.好比,能夠統計某個特徵被認爲是重要特徵的頻率(被選爲重要的特徵的次數以它所在的子集被測試的次數).在理想狀況下,重要特徵的得分會接近100%.稍微弱一點的特徵得分會是非0的數,而最無用的特徵得分將會接近0,Scikit-Learn在隨機Lasso和隨機邏輯迴歸中有對穩定性選擇的實現
      • 從上面的結果能夠看出,採用隨機邏輯迴歸剔除變量,分別剔除了x2,x8,x1,x5,最終構建的模型包含的變量爲常量x3,x4,x6,x7.在創建隨機邏輯迴歸模型時,使用默認的閾值0.25,咱們能夠用RLR(selection_threshold=0.5)手動設置閾值.此外,在本例中,使用隨機Lasso,甚至僅僅簡單地採用F迴歸(f_rgression)也可以獲得相似的結果.
      • 邏輯迴歸本質上仍是一種線性模型,所以這裏結果具備比較強的線性相關性,然而被篩選掉的變量並不必定就跟結果沒有關係,由於他們之間有可能時非線性關係,所以,咱們須要根據實際的背景對篩選結果進行分析,對於非線性關係的變量篩選方法有決策樹,神經網絡等.
相關文章
相關標籤/搜索