【機(jī)器學(xué)習(xí)】嘿馬機(jī)器學(xué)習(xí)(算法篇)第9篇:線性回歸,學(xué)習(xí)目標(biāo)【附代碼文檔】

本教程的知識點(diǎn)為:機(jī)器學(xué)習(xí)算法定位阵谚、 K-近鄰算法 1.4 k值的選擇 1 K值選擇說明 1.6 案例:鳶尾花種類預(yù)測--數(shù)據(jù)集介紹 1 案例:鳶尾花種類預(yù)測 1.8 案例:鳶尾花種類預(yù)測—流程實(shí)現(xiàn) 1 再識K-近鄰算法API 1.11 案例2:預(yù)測facebook簽到位置 1 項(xiàng)目描述 線性回歸 2.3 數(shù)學(xué):求導(dǎo) 1 常見函數(shù)的導(dǎo)數(shù) 線性回歸 2.5 梯度下降方法介紹 1 詳解梯度下降算法 線性回歸 2.6 線性回歸api再介紹 小結(jié) 線性回歸 2.9 正則化線性模型 1 Ridge Regression (嶺回歸蜀漆,又名 Tikhonov regularization) 邏輯回歸 3.3 案例:癌癥分類預(yù)測-良/惡性乳腺癌腫瘤預(yù)測 1 背景介紹 決策樹算法 4.2 決策樹分類原理 1 熵 決策樹算法 4.3 cart剪枝 1 為什么要剪枝 決策樹算法 4.4 特征工程-特征提取 1 特征提取 決策樹算法 4.5 決策樹算法api 4.6 案例:泰坦尼克號乘客生存預(yù)測 集成學(xué)習(xí)基礎(chǔ) 5.1 集成學(xué)習(xí)算法簡介 1 什么是集成學(xué)習(xí) 2 復(fù)習(xí):機(jī)器學(xué)習(xí)的兩個核心任務(wù) 集成學(xué)習(xí)基礎(chǔ) 5.3 otto案例介紹 -- Otto Group Product Classification Challenge 1.背景介紹 2.數(shù)據(jù)集介紹 3.評分標(biāo)準(zhǔn) 集成學(xué)習(xí)基礎(chǔ) 5.5 GBDT介紹 1 Decision Tree:CART回歸樹 1.1 回歸樹生成算法(復(fù)習(xí)) 聚類算法 6.1 聚類算法簡介 1 認(rèn)識聚類算法 聚類算法 6.5 算法優(yōu)化 1 Canopy算法配合初始聚類 聚類算法 6.7 案例:探究用戶對物品類別的喜好細(xì)分 1 需求 第一章知識補(bǔ)充:再議數(shù)據(jù)分割 1 留出法 2 交叉驗(yàn)證法 KFold和StratifiedKFold 3 自助法 正規(guī)方程的另一種推導(dǎo)方式 1.損失表示方式 2.另一種推導(dǎo)方式 梯度下降法算法比較和進(jìn)一步優(yōu)化 1 算法比較 2 梯度下降優(yōu)化算法 第二章知識補(bǔ)充: 多項(xiàng)式回歸 1 多項(xiàng)式回歸的一般形式 維災(zāi)難 1 什么是維災(zāi)難 2 維數(shù)災(zāi)難與過擬合 第三章補(bǔ)充內(nèi)容:分類中解決類別不平衡問題 1 類別不平衡數(shù)據(jù)集基本介紹 向量與矩陣的范數(shù) 1.向量的范數(shù) 2.矩陣的范數(shù) 如何理解無偏估計糠溜?無偏估計有什么用三妈? 1.如何理解無偏估計

完整筆記資料代碼:https://gitee.com/yinuo112/AI/tree/master/機(jī)器學(xué)習(xí)/嘿馬機(jī)器學(xué)習(xí)(算法篇)/note.md

感興趣的小伙伴可以自取哦~


全套教程部分目錄:


部分文件圖片:

線性回歸

學(xué)習(xí)目標(biāo)

  • 掌握線性回歸的實(shí)現(xiàn)過程
  • 應(yīng)用LinearRegression或SGDRegressor實(shí)現(xiàn)回歸預(yù)測
  • 知道回歸算法的評估標(biāo)準(zhǔn)及其公式
  • 知道過擬合與欠擬合的原因以及解決方法
  • 知道嶺回歸的原理及與線性回歸的不同之處
  • 應(yīng)用Ridge實(shí)現(xiàn)回歸預(yù)測
  • 應(yīng)用joblib實(shí)現(xiàn)模型的保存與加載

2.9 正則化線性模型

學(xué)習(xí)目標(biāo)

  • 知道正則化中嶺回歸的線性模型
  • 知道正則化中l(wèi)asso回歸的線性模型
  • 知道正則化中彈性網(wǎng)絡(luò)的線性模型
  • 了解正則化中early stopping的線性模型

  • Ridge Regression 嶺回歸
  • Lasso 回歸
  • Elastic Net 彈性網(wǎng)絡(luò)
  • Early stopping

1 Ridge Regression (嶺回歸槽惫,又名 Tikhonov regularization)

嶺回歸是線性回歸的正則化版本梗逮,即在原來的線性回歸的 cost function 中添加正則項(xiàng)(regularization term):

以達(dá)到在擬合數(shù)據(jù)的同時散劫,使模型權(quán)重盡可能小的目的,嶺回歸代價函數(shù):

  • α=0:嶺回歸退化為線性回歸

2 Lasso Regression(Lasso 回歸)

Lasso 回歸是線性回歸的另一種正則化版本,正則項(xiàng)為權(quán)值向量的?1范數(shù)牍戚。

Lasso回歸的代價函數(shù) :

【注意 】

  • Lasso Regression 的代價函數(shù)在 θi=0處是不可導(dǎo)的.
  • 解決方法:在θi=0處用一個次梯度向量(subgradient vector)代替梯度侮繁,如下式
  • Lasso Regression 的次梯度向量

Lasso Regression 有一個很重要的性質(zhì)是:傾向于完全消除不重要的權(quán)重。

例如:當(dāng)α 取值相對較大時如孝,高階多項(xiàng)式退化為二次甚至是線性:高階多項(xiàng)式特征的權(quán)重被置為0宪哩。

也就是說,Lasso Regression 能夠自動進(jìn)行特征選擇第晰,并輸出一個稀疏模型(只有少數(shù)特征的權(quán)重是非零的)锁孟。

3 Elastic Net (彈性網(wǎng)絡(luò))

彈性網(wǎng)絡(luò)在嶺回歸和Lasso回歸中進(jìn)行了折中,通過 混合比(mix ratio) r 進(jìn)行控制:

  • r=0:彈性網(wǎng)絡(luò)變?yōu)閹X回歸
  • r=1:彈性網(wǎng)絡(luò)便為Lasso回歸

彈性網(wǎng)絡(luò)的代價函數(shù) :

一般來說茁瘦,我們應(yīng)避免使用樸素線性回歸品抽,而應(yīng)對模型進(jìn)行一定的正則化處理,那如何選擇正則化方法呢甜熔?

小結(jié):

  • 常用:嶺回歸

  • 假設(shè)只有少部分特征是有用的:

    • 彈性網(wǎng)絡(luò)
    • Lasso
    • 一般來說圆恤,彈性網(wǎng)絡(luò)的使用更為廣泛。因?yàn)樵谔卣骶S度高于訓(xùn)練樣本數(shù)腔稀,或者特征是強(qiáng)相關(guān)的情況下盆昙,Lasso回歸的表現(xiàn)不太穩(wěn)定羽历。
  • api:

from sklearn.linear_model import Ridge, ElasticNet, Lasso









## 4 Early Stopping [了解]




Early Stopping 也是正則化迭代學(xué)習(xí)的方法之一。

其做法為:在驗(yàn)證錯誤率達(dá)到最小值的時候停止訓(xùn)練淡喜。




## 5 小結(jié)




* Ridge Regression 嶺回歸

* 就是把系數(shù)添加平方項(xiàng)
* 然后限制系數(shù)值的大小
* α值越小窄陡,系數(shù)值越大,α越大拆火,系數(shù)值越小

* Lasso 回歸

* 對系數(shù)值進(jìn)行絕對值處理
* 由于絕對值在頂點(diǎn)處不可導(dǎo)跳夭,所以進(jìn)行計算的過程中產(chǎn)生很多0,最后得到結(jié)果為:稀疏矩陣

* Elastic Net 彈性網(wǎng)絡(luò)

* 是前兩個內(nèi)容的綜合
* 設(shè)置了一個r,如果r=0--嶺回歸们镜;r=1--Lasso回歸

* Early stopping

* 通過限制錯誤率的閾值币叹,進(jìn)行停止





# 2.10 線性回歸的改進(jìn)-嶺回歸







## 學(xué)習(xí)目標(biāo)




* 知道嶺回歸api的具體使用

---




## 1 API




* sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)

* 具有l(wèi)2正則化的線性回歸
* alpha:正則化力度,也叫 λ

   * **λ取值:0~1 1~10**

* solver:會根據(jù)數(shù)據(jù)自動選擇優(yōu)化方法

   * **sag:如果數(shù)據(jù)集模狭、特征都比較大颈抚,選擇該隨機(jī)梯度下降優(yōu)化**

* normalize:數(shù)據(jù)是否進(jìn)行標(biāo)準(zhǔn)化

   * normalize=False:可以在fit之前調(diào)用preprocessing.StandardScaler標(biāo)準(zhǔn)化數(shù)據(jù)

* Ridge.coef_:回歸權(quán)重
* Ridge.intercept_:回歸偏置


**Ridge方法相當(dāng)于SGDRegressor(penalty='l2', loss="squared_loss"),只不過SGDRegressor實(shí)現(xiàn)了一個普通的隨機(jī)梯度下降學(xué)習(xí),推薦使用Ridge(實(shí)現(xiàn)了SAG)**

* sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)

* 具有l(wèi)2正則化的線性回歸嚼鹉,可以進(jìn)行交叉驗(yàn)證
* coef_:回歸系數(shù)


```python
class _BaseRidgeCV(LinearModel):
 def __init__(self, alphas=(0.1, 1.0, 10.0),
              fit_intercept=True, normalize=False,scoring=None,
              cv=None, gcv_mode=None,
              store_cv_values=False):

2 觀察正則化程度的變化贩汉,對結(jié)果的影響?

  • 正則化力度越大锚赤,權(quán)重系數(shù)會越小
  • 正則化力度越小匹舞,權(quán)重系數(shù)會越大

3 波士頓房價預(yù)測

def linear_model3():
    """
    線性回歸:嶺回歸
    :return:
    """
    # 1.獲取數(shù)據(jù)
    data = load_boston()

    # 2.數(shù)據(jù)集劃分
    x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, random_state=22)

    # 3.特征工程-標(biāo)準(zhǔn)化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.fit_transform(x_test)

    # 4.機(jī)器學(xué)習(xí)-線性回歸(嶺回歸)
    estimator = Ridge(alpha=1)
    # estimator = RidgeCV(alphas=(0.1, 1, 10))
    estimator.fit(x_train, y_train)

    # 5.模型評估
    # 5.1 獲取系數(shù)等值
    y_predict = estimator.predict(x_test)
    print("預(yù)測值為:\n", y_predict)
    print("模型中的系數(shù)為:\n", estimator.coef_)
    print("模型中的偏置為:\n", estimator.intercept_)

    # 5.2 評價
    # 均方誤差
    error = mean_squared_error(y_test, y_predict)
    print("誤差為:\n", error)

4 小結(jié)

  • sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)【知道】

    • 具有l(wèi)2正則化的線性回歸

    • alpha -- 正則化

      • 正則化力度越大,權(quán)重系數(shù)會越小
      • 正則化力度越小线脚,權(quán)重系數(shù)會越大
    • normalize

      • 默認(rèn)封裝了赐稽,對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理

2.11 模型的保存和加載

學(xué)習(xí)目標(biāo)

  • 知道sklearn中模型的保存和加載

1 sklearn模型的保存和加載API

  • from sklearn.externals import joblib

    • 保存:joblib.dump(estimator, 'test.pkl')
    • 加載:estimator = joblib.load('test.pkl')

2 線性回歸的模型保存加載案例

def load_dump_demo():
    """
    模型保存和加載
    :return:
    """
    # 1.獲取數(shù)據(jù)
    data = load_boston()

    # 2.數(shù)據(jù)集劃分
    x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, random_state=22)

    # 3.特征工程-標(biāo)準(zhǔn)化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.fit_transform(x_test)

    # 4.機(jī)器學(xué)習(xí)-線性回歸(嶺回歸)
    # # 4.1 模型訓(xùn)練
    # estimator = Ridge(alpha=1)
    # estimator.fit(x_train, y_train)
    #
    # # 4.2 模型保存
    # joblib.dump(estimator, "./data/test.pkl")

    # 4.3 模型加載
    estimator = joblib.load("./data/test.pkl")

    # 5.模型評估
    # 5.1 獲取系數(shù)等值
    y_predict = estimator.predict(x_test)
    print("預(yù)測值為:\n", y_predict)
    print("模型中的系數(shù)為:\n", estimator.coef_)
    print("模型中的偏置為:\n", estimator.intercept_)

    # 5.2 評價
    # 均方誤差
    error = mean_squared_error(y_test, y_predict)
    print("誤差為:\n", error)

3 小結(jié)

  • sklearn.externals import joblib【知道】

    • 保存:joblib.dump(estimator, 'test.pkl')

    • 加載:estimator = joblib.load('test.pkl')

    • 注意:

      • 1.保存文件,后綴名是**.pkl
      • 2.加載模型是需要通過一個變量進(jìn)行承接

邏輯回歸

學(xué)習(xí)目標(biāo)

  • 知道邏輯回歸的損失函數(shù)浑侥、優(yōu)化方法
  • 知道邏輯回歸的應(yīng)用場景
  • 應(yīng)用LogisticRegression實(shí)現(xiàn)邏輯回歸預(yù)測
  • 知道精確率姊舵、召回率等指標(biāo)的區(qū)別
  • 知道如何解決樣本不均衡情況下的評估
  • 會繪制ROC曲線圖形

邏輯回歸

學(xué)習(xí)目標(biāo)

  • 知道邏輯回歸的損失函數(shù)、優(yōu)化方法
  • 知道邏輯回歸的應(yīng)用場景
  • 應(yīng)用LogisticRegression實(shí)現(xiàn)邏輯回歸預(yù)測
  • 知道精確率寓落、召回率等指標(biāo)的區(qū)別
  • 知道如何解決樣本不均衡情況下的評估
  • 會繪制ROC曲線圖形

3.1 邏輯回歸介紹

學(xué)習(xí)目標(biāo)

  • 了解邏輯回歸的應(yīng)用場景
  • 知道邏輯回歸的原理
  • 掌握邏輯回歸的損失函數(shù)和優(yōu)化方案

邏輯回歸(Logistic Regression)是機(jī)器學(xué)習(xí)中的一種分類模型括丁,邏輯回歸是一種分類算法,雖然名字中帶有回歸伶选。由于算法的簡單和高效史飞,在實(shí)際中應(yīng)用非常廣泛。

1 邏輯回歸的應(yīng)用場景

  • 廣告點(diǎn)擊率
  • 是否為垃圾郵件
  • 是否患病
  • 金融詐騙
  • 虛假賬號

看到上面的例子考蕾,我們可以發(fā)現(xiàn)其中的特點(diǎn)祸憋,那就是都屬于兩個類別之間的判斷会宪。邏輯回歸就是解決二分類問題的利器

2 邏輯回歸的原理

要想掌握邏輯回歸肖卧,必須掌握兩點(diǎn):

  • 邏輯回歸中,其輸入值是什么

  • 如何判斷邏輯回歸的輸出

2.1 輸入

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掸鹅,一起剝皮案震驚了整個濱河市塞帐,隨后出現(xiàn)的幾起案子拦赠,更是在濱河造成了極大的恐慌,老刑警劉巖葵姥,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荷鼠,死亡現(xiàn)場離奇詭異,居然都是意外死亡榔幸,警方通過查閱死者的電腦和手機(jī)允乐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來削咆,“玉大人牍疏,你說我怎么就攤上這事〔ζ耄” “怎么了鳞陨?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞻惋。 經(jīng)常有香客問我厦滤,道長,這世上最難降的妖魔是什么歼狼? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任掏导,我火速辦了婚禮,結(jié)果婚禮上羽峰,老公的妹妹穿的比我還像新娘碘菜。我一直安慰自己,他們只是感情好限寞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布忍啸。 她就那樣靜靜地躺著,像睡著了一般履植。 火紅的嫁衣襯著肌膚如雪计雌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天玫霎,我揣著相機(jī)與錄音凿滤,去河邊找鬼。 笑死庶近,一個胖子當(dāng)著我的面吹牛翁脆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鼻种,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼反番,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起罢缸,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤篙贸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后枫疆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爵川,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年息楔,在試婚紗的時候發(fā)現(xiàn)自己被綠了寝贡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡值依,死狀恐怖兔甘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳞滨,我是刑警寧澤洞焙,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站拯啦,受9級特大地震影響澡匪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褒链,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一唁情、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甫匹,春花似錦甸鸟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恍箭,卻和暖如春刻恭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扯夭。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工鳍贾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人交洗。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓骑科,卻偏偏與公主長得像,于是被迫代替她去往敵國和親构拳。 傳聞我的和親對象是個殘疾皇子咆爽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內(nèi)容