1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python 用5行代碼學(xué)機器學(xué)習(xí)—線性回歸

        共 2454字,需瀏覽 5分鐘

         ·

        2021-10-10 09:26

        之前Python實用寶典講過許多關(guān)于機器學(xué)習(xí)的文章,比如:

        1.Python 短文本自動識別個體是否有自殺傾向
        2.如何基于Paddle快速訓(xùn)練一個98%準(zhǔn)確率的抑郁文本預(yù)測模型?
        3.[準(zhǔn)確率:98%] 改進樸素貝葉斯自動分類食品安全新聞
        4.在泰坦尼克號上你能活下來嗎?Python告訴你
        5.準(zhǔn)確率94%!Python 機器學(xué)習(xí)識別微博或推特機器人

        等等... 但是這些文章所使用到的機器學(xué)習(xí)模型,讀者在第一次閱讀的時候可能完全不了解或不會使用。

        為了解決這樣的問題,我準(zhǔn)備使用scikit-learn給大家介紹一些模型的基礎(chǔ)知識,今天就來講講線性回歸模型

        1.準(zhǔn)備



        開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南?進行安裝。

        (可選1)?如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

        (可選2)?此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。

        請選擇以下任一種方式輸入命令安裝依賴
        1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
        2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
        3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

        pip install?scikit-learn


        2.簡單的訓(xùn)練集



        冬天快到了,深圳這幾天已經(jīng)準(zhǔn)備開始入冬了。

        從生活入手,外界溫度對是否穿外套的影響是具有線性關(guān)系的:

        外界溫度是否穿外套
        30度
        25度
        20度
        15度
        10度


        現(xiàn)在,考慮這樣的一個問題:如果深圳的溫度是12度,我們應(yīng)不應(yīng)該穿外套?

        這個問題很簡單,上述簡單的訓(xùn)練集中,我們甚至不需要機器學(xué)習(xí)就能輕易地得到答案:應(yīng)該。但如果訓(xùn)練集變得稍顯復(fù)雜一些呢:


        你能看出其中x1, x2, x3和y之間的規(guī)律嗎?

        比較難,但是如果你有足夠的數(shù)據(jù)(比如100個),機器學(xué)習(xí)能夠迅速解決這個問題。

        為了方便展示機器學(xué)習(xí)的威力,我們在這里生產(chǎn)100個這樣的訓(xùn)練集(公式為: y=x1 + 2*x2 + 3*x3):

        from?random import?randint
        TRAIN_SET_LIMIT = 1000
        TRAIN_SET_COUNT = 100

        TRAIN_INPUT = list()
        TRAIN_OUTPUT = list()
        for?i in?range(TRAIN_SET_COUNT):
        ????a = randint(0, TRAIN_SET_LIMIT)
        ????b = randint(0, TRAIN_SET_LIMIT)
        ????c = randint(0, TRAIN_SET_LIMIT)
        ????op = a + (2*b) + (3*c)
        ????TRAIN_INPUT.append([a, b, c])
        ????TRAIN_OUTPUT.append(op)


        然后讓線性回歸模型使用該訓(xùn)練集(Training Set)進行訓(xùn)練(fit),然后再給定三個參數(shù)(Test Data),進行預(yù)測(predict),讓它得到y(tǒng)值(Prediction),如下圖所示。




        3.訓(xùn)練和測試



        為什么我使用sklearn?因為它真的真的很方便。像這樣的訓(xùn)練行為,你只需要3行代碼就能搞定:

        from?sklearn.linear_model import?LinearRegression

        predictor = LinearRegression(n_jobs=-1)
        predictor.fit(X=TRAIN_INPUT, y=TRAIN_OUTPUT)


        需要注意線性回歸模型(LinearRegression)的參數(shù):

        n_jobs:默認(rèn)為1,表示使用CPU的個數(shù)。當(dāng)-1時,代表使用全部CPU

        predictor.fit 即訓(xùn)練模型,X是我們在生成訓(xùn)練集時的TRAIN_INPUT,Y即TRAIN_OUTPUT.

        訓(xùn)練完就可以立即進行測試了,調(diào)用predict函數(shù)即可:

        X_TEST = [[10, 20, 30]]
        outcome = predictor.predict(X=X_TEST)
        coefficients = predictor.coef_

        print('Outcome : {}\nCoefficients : {}'.format(outcome, coefficients))


        這里的 coefficients 是指系數(shù),即x1, x2, x3.

        得到的結(jié)果如下:

        Outcome : [ 140.]
        Coefficients : [ 1. 2. 3.]


        驗證一下:10 + 20*2 + 30*3 = 140 完全正確。

        如何,機器學(xué)習(xí)模型,用起來其實真的沒你想象中的那么難,大部分人很可能只是卡在了安裝 scikit-learn 的路上...

        順便給大家留個小練習(xí),將下列歐式距離,使用線性回歸模型進行表示。

        解決思路和本文的方案其實是類似的,只不過需要變通一下。

        解決出來的同學(xué)可在后臺回復(fù):加群,將代碼發(fā)給我驗證,領(lǐng)取一份小紅包并進入Python實用寶典的高質(zhì)量學(xué)習(xí)交流群哦。

        我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

        原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

        點擊下方閱讀原文可獲得更好的閱讀體驗

        Python實用寶典?(pythondict.com)
        不只是一個寶典
        歡迎關(guān)注公眾號:Python實用寶典

        瀏覽 57
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            插逼视频网站 | 成人性生交大片免费看黄103 | 正在播放国产AV | 仙女屋韩国主播大尺度tv | 麻豆国产91 在线播放 | 小骚逼网| 教官揉捏呻吟酥软 | 红桃视频乱码一区二区三区 | 精品国产999 | 粉嫩精品国产色综合久久不8 |