當前位置:網站首頁>機器學習小概述(機器學習初體驗(Azure))

機器學習小概述(機器學習初體驗(Azure))

2022-01-28 03:15:53 'or 1 or 不正經の泡泡


「這是我參與2022首次更文挑戰的第4天,活動詳情查看: 2022首次更文挑戰

本博文優先在掘金社區發布!

前言

從今天開始我終於開始回歸到我的老本行之一進行學習了!每天刷刷力扣,玩玩虛幻四突然發現時間是真不够。所以我得加快脚步了,本來我寒假的計劃是完成多目標優化的學習,以及web的學習鞏固進階,也就是分布式SpringCloud 雲原生那一塊,並對前面寫的博客社區進行完善和部署。現在看看時間似乎不够!而且我們這邊還有機器學習,深度學習,Sklearn ,pytorch 方面的學習需要鞏固(這些東西其實都是我花了半個月學習的,所以我需要重新學習鞏固一遍(不然現在的我只能看看人家的demo,跑一跑)))。所以這個寒假三件事,刷Letcode,機器學習,啃多目標優化,並且重新溫習java基礎部分(線程,反射…框架玩太多了,這塊好久沒寫過原生的了,但是下個學期寫MoFlink必然用得上,沒有輪子呀!))

OK,那麼今天我們來說說機器學習這玩意。一說到這個我們就不得不提到人工智能。一說到人工智能我們又會想到 深度學習

所以問題來了,他們之間有什麼關系咧?如果我對這玩意感興趣,我應該從哪方面入手呢?同時我需要具備那些基礎知識呢?

那麼接下來我就來說說,他們之間的關系:

  • [人工智能]:這玩意不用我多說,大家都懂。
  • [機器學習]:機器學習是人工智能的一個實現途徑。
  • [深度學習]:深度學習是屬於我們機器學習的一種分支,也就是說在學習深度學習之前我們最好先學習機器學習。
  • [學習條件]:
  • [數學]:數學的話我們最起碼要學習高等數學,和線性代數(後面經常使用),已經概論論,當然還有離散。學習數學的目的是因為有些算法是需要有數學基礎的,我們要求不高不奢望能够推導,但是我們最起碼要理解。
  • [編程]:如果你想要系統學習,你最好先掌握python。
  • [算法]:掌握一些機器學習算法,我們機器學習的本質其實還是算法,對算法的優化,使用。

好了,那麼接下來,我們是時候回來好好聊聊啥事機器學習了。

何為機器學習

機器學習是從數據中自動分析獲得模型,並利用模型對未知數據進行預測。

那麼這個模型呢其實就是我們一些算法。

image.png

在早期我們的機器學習分為多個階段,當然我們這邊不是曆史博文,所以這邊只談現狀。

機器學習的流程

image.png

我們的機器學習,大致分為五個部分、

  • 獲取數據
  • 數據基本處理
  • 特征工程
  • 機器學習(模型訓練)
  • 模型評估

這個也是我先前在使用sklearn裏面說的五部曲。

演示(基於Azure實驗平臺)

那麼接下來為了讓我的說明更有力,我這裏實際的演示一下,首先是我們的代碼演示,我們使用我們的sklearn進行演示。這個是預測鶯尾花的。

from sklearn.datasets import fetch_20newsgroups
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB

def nb_news():
    """ 用樸素貝葉斯算法對新聞進行分類 :return: """
    #1.獲取數據
    news = fetch_20newsgroups(subset="all")#subset="all"獲取所有數據,train獲取訓練數據
    #2.劃分數據集
    x_train, x_test, y_train, y_test = train_test_split(news.data, news.target)
    #3.特征工程:文本特征抽取-tfidf
    transfer = TfidfVectorizer()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    #4.樸素貝葉斯算法預估器流程
    estimator = MultinomialNB()
    estimator.fit(x_train, y_train)
    #5.模型評估
        # 方法1:直接比對真實值和預測值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比對真實值和預測值:\n", y_test == y_predict)
        # 方法2:計算准確率
    score = estimator.score(x_test, y_test)
    print("准確率為:\n", score)


這個看不懂沒關系,咱們還有簡單的。那就是咱們的雲平臺。

Azure

image.png

我們這邊直接使用我們的微軟賬號登錄即可。
接下來這樣操作

(在此之前我先放一張完整的圖片)

image.png

(使用穀歌瀏覽器翻譯之後是這樣的)

image.png

下面是正常的開始操作了:

image.png

image.png

此時你就會進入這樣的界面

image.png

注意我這裏使用的數據集是直接第一個拖過來的。

image.png
它的數據集是長這樣的

image.png

之後是綁定我們的預測數據(點擊會有彈窗)

image.png
之後點擊運行

image.png

image.png

image.png

最後是我們的模型評估

image.png

機器學習算法分類

1 監督學習

定義:
輸入數據是由輸入特征值和目標值所組成。 函數的輸出可以是一個連續的值(稱為回歸), 或是輸出是有限個離散值(稱作分類)。

例如:
回歸問題

對某些數據進行預測

image.png

分類問題

image.png

當然關於分類問題 也可以是無監督學習例如 K-means

2無監督學習

定義: 輸入數據是由輸入特征值組成,沒有目標值 輸入數據沒有被標記,也沒有確定的結果。樣本數據類別未知; 需要根據樣本間的相似性對樣本集進行類別劃分。

舉個例子就是,對你班上的人進行劃分,你想怎麼分都行,只要你能說出理由。

image.png

3半監督學習

定義: 訓練集同時包含有標記樣本數據和未標記樣本數據。

這個舉個例子就是,我們前面的監督學習是指輸入數據是由輸入特征值和目標值所組成。
也就是說,輸入數據是【數據,標簽】的形式,那麼半監督就是輸入的數據有一些是【數據,標簽】還有一些是沒有的。

image.png

模型評估

模型評估的話主要就是對,當前預測值和我們原有的數據集進行對比,例如一組數據,我們把75%用於訓練25%用於評估,我們通過75%的數據進行訓練得到模型,之後我們利用這個模型去預測剩下25%之後預測值和我們的實際值進行誤差檢驗,例如最經典的求均方差

image.png

那麼說到這裏,我們模型還容易出現兩張情况。

欠擬合

image.png

過擬合

image.png

版權聲明
本文為['or 1 or 不正經の泡泡]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201280315533140.html

隨機推薦