色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

帶你入門常見的機器學習分類算法——邏輯回歸、樸素貝葉斯、KNN、SVM、決策樹

電子工程師 ? 來源:lq ? 2019-05-06 09:29 ? 次閱讀

【導讀】眾所周知,Scikit-learn(以前稱為scikits.learn)是一個用于Python編程語言的免費軟件機器學習庫。它具有各種分類,回歸和聚類算法,包括支持向量機,隨機森林,梯度增強,k-means和DBSCAN,旨在與Python數值和科學庫NumPy和SciPy互操作。本文將帶你入門常見的機器學習分類算法——邏輯回歸、樸素貝葉斯、KNN、SVM、決策樹。

邏輯回歸 (Logistic regression)

邏輯回歸,盡管他的名字包含"回歸",卻是一個分類而不是回歸的線性模型。邏輯回歸在文獻中也稱為logit回歸,最大熵分類或者對數線性分類器。下面將先介紹一下sklearn中邏輯回歸的接口

class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='warn', max_iter=100, multi_class='warn', verbose=0, warm_start=False, n_jobs=None)

常用參數講解:

penalty:懲罰項。一般都是"l1"或者"l2"。

dual:這個參數僅適用于使用liblinear求解器的"l2"懲罰項。 一般當樣本數大于特征數時,這個參數置為False。

C:正則化強度(較小的值表示更強的正則化),必須是正的浮點數。

solver:參數求解器。一般的有{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}。

multi_class:多分類問題轉化,如果使用"ovr",則是將多分類問題轉換成多個二分類為題看待;如果使用"multinomial",損失函數則會是整個概率分布的多項式擬合損失。

不常用的參數這里就不再介紹,想要了解細節介紹,可以sklearn的官網查看。

案例:

這里我使用sklearn內置的數據集——iris數據集,這是一個三分類的問題,下面我就使用邏輯回歸來對其分類:

from sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionX, y = load_iris(return_X_y=True)clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y)

上面我就訓練好了一個完整的邏輯回歸模型,我們可以用predict這個函數對測試集進行預測。

clf.predict(X[:2, :])

如果想知道預測的概率,可以通過predict_proba這個函數來進行預測。

clf.predict_proba(X[:2, :])

如果想知道我們預測的準確性,可以通過score這個函數來判斷我們的模型好壞。

clf.score(X, y)

樸素貝葉斯

樸素貝葉斯方法是一組基于貝葉斯定理的監督學習算法,在給定類變量值的情況下,樸素假設每對特征之間存在條件獨立性。下面我將介紹幾種樸素貝葉斯的方法。

1、高斯樸素貝葉斯 (GaussianNB)

高斯樸素貝葉斯的原理可以看這篇文章:

http://i.stanford.edu/pub/cstr/reports/cs/tr/79/773/CS-TR-79-773.pdf

這里,我將介紹如何使用sklearn來實現GaussianNB。

from sklearn import datasetsiris = datasets.load_iris()from sklearn.naive_bayes import GaussianNBgnb = GaussianNB()y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)print("Number of mislabeled points out of a total %d points : %d" % (iris.data.shape[0],(iris.target != y_pred).sum()))

2、多項式樸素貝葉斯 (MultinomialNB/MNB)

這里我隨機生成一組數據,然后使用MultinomialNB算法來學習。

import numpy as npX = np.random.randint(50, size=(1000, 100))y = np.random.randint(6, size=(1000))from sklearn.naive_bayes import MultinomialNBclf = MultinomialNB()clf.fit(X, y)print(clf.predict(X[2:3]))

3、 互補樸素貝葉斯 (ComplementNB/CMB)

ComplementNB是標準多項式樸素貝葉斯(MNB)算法的一種改進,特別適用于不平衡數據集。具體來說,ComplementNB使用來自每個類的補充的統計信息來計算模型的權重。CNB的發明者通過實驗結果表明,CNB的參數估計比MNB的參數估計更穩定。此外,在文本分類任務上,CNB通常比MNB表現得更好(通常是相當大的優勢)。

CNB的sklearn接口:

class sklearn.naive_bayes.ComplementNB(alpha=1.0, fit_prior=True, class_prior=None, norm=False)

常用參數講解:

alpha:加性(拉普拉斯/Lidstone)平滑參數(無平滑為0)。

fit_prior:是否學習類先驗概率。若為假,則使用統一先驗。

class_prior:類的先驗概率。如果指定,則不根據數據調整先驗。

norm:是否執行權重的第二次標準化。

案例:

import numpy as npX = np.random.randint(50, size=(1000, 100))y = np.random.randint(6, size=(1000))from sklearn.naive_bayes import ComplementNBclf = ComplementNB()clf.fit(X, y)print(clf.predict(X[2:3]))

4、伯努利樸素貝葉斯 (BernoulliNB)

BernoulliNB實現了基于多元伯努利分布的數據的樸素貝葉斯訓練和分類算法。BernoulliNB可能在某些數據集上表現得更好,特別是那些文檔較短的數據集。BernoulliNB的sklearn與上面介紹的算法接口相似。

案例:

import numpy as npX = np.random.randint(50, size=(1000, 100))y = np.random.randint(6, size=(1000))from sklearn.naive_bayes import BernoulliNBclf = BernoulliNB()clf.fit(X, Y)print(clf.predict(X[2:3]))

K-Nearest Neighbors(KNN)

KNN基于每個查詢點的最近鄰居來實現學習,其中k是用戶指定的一個整數值。是最經典的機器學習算法之一。

KNN的skearn的接口如下:

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, **kwargs)

常用參數講解:

n_neighbors:鄰居數,是KNN中最重要的參數。

algorithm:計算最近鄰的算法,常用算法有{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}。

案例:

from sklearn import datasetsiris = datasets.load_iris()from sklearn.neighbors import KNeighborsClassifierneigh = KNeighborsClassifier(n_neighbors=3)neigh.fit(iris.data, iris.target) print(neigh.predict((iris.data))print(neigh.predict_proba((iris.data))

支持向量機 (SVM)

支持向量機(SVMs)是一套用于分類、回歸和異常值檢測的監督學習方法。這里我將只介紹分類方法。支持向量機的優點是:在高維空間中有效;在維數大于樣本數的情況下仍然有效,因此對于小數據集,SVM可以表現出良好的性能。

SVM在sklearn上有三個接口,分別是 LinearSVC, SVC, 和 NuSVC。最常用的一般是SVC接口。

SVC的sklearn接口:

class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=’ovr’, random_state=None)

常用參數講解:

C:錯誤項的懲罰參數C

kernel:核函數的選擇。常用的核函數有:‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’。

probability:預測時是否使用概率估計。

案例:

import numpy as npX = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])y = np.array([1, 1, 2, 2])from sklearn.svm import SVCclf = SVC(C=1,kernel='rbf',gamma='auto')clf.fit(X, y) print(clf.predict([[-0.8, -1]]))

拓展:SVM解決二分類問題具有得天獨厚的優勢,然而對于解決多分類問題卻很困難。常見的解決方案是“一對一”的方法解決多分類問題。具體地,假設 這個是一個 n_class的分類問題,則會構建 n_class*(n_class-1)/2個二分類,來解決這個多分類問題。

X = [[0], [1], [2], [3]]Y = [0, 1, 2, 3]clf = svm.SVC(gamma='scale', decision_function_shape='ovo')clf.fit(X, Y) dec = clf.decision_function([[1]])dec.shape[1] # 4 classes: 4*3/2 = 6clf.decision_function_shape = "ovr"dec = clf.decision_function([[1]])dec.shape[1] # 4 classes

決策樹

決策樹作為十大經典算法之一,能夠很好的處理多分類問題。

決策樹的sklearn接口:

class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

常用參數講解:

criterion:該函數用于衡量分割的依據。常見的有"gini"用來計算基尼系數和"entropy"用來計算信息增益。

max_depth:樹的最大深度。

min_samples_split:分割內部節點所需的最小樣本數。

min_samples_leaf:葉節點上所需的最小樣本數。

案例:

from sklearn.datasets import load_irisfrom sklearn.model_selection import cross_val_scorefrom sklearn.tree import DecisionTreeClassifierclf = DecisionTreeClassifier(random_state=0)iris = load_iris()clf.fit(iris.data, iris.target)clf.predict(iris.data)clf.predict_proba(iris.data)

總結

本文介紹了幾種常見的機器學習分類算法,如邏輯回歸,樸素貝葉斯,KNN,SVM,以及決策樹算法。同時,也用sklearn的python接口展示了各個算法使用案例。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8438

    瀏覽量

    132911
  • 決策樹
    +關注

    關注

    3

    文章

    96

    瀏覽量

    13571
  • 樸素貝葉斯
    +關注

    關注

    0

    文章

    12

    瀏覽量

    3390

原文標題:15分鐘帶你入門sklearn與機器學習——分類算法篇

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    機器學習中常用的決策樹算法技術解析

    決策樹是最重要的機器學習算法之一,其可被用于分類回歸問題。本文中,我們將介紹
    發表于 10-12 16:39 ?1344次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學習</b>中常用的<b class='flag-5'>決策樹</b><b class='flag-5'>算法</b>技術解析

    常見算法優缺點比較

    ,并從優中擇優。但是每次都進行這一操作不免過于繁瑣,下面小編來分析下各個算法的優缺點,以助大家有針對性地進行選擇,解決問題。1.樸素
    發表于 12-02 15:40

    機器學習樸素講解

    秦剛剛的機器學習成長之路之樸素
    發表于 05-15 14:41

    機器學習分類

    各種機器學習的應用場景分別是什么?例如,k近鄰,,決策樹,
    發表于 09-10 10:53

    介紹支持向量機與決策樹集成等模型的應用

    本文主要介紹支持向量機、k近鄰、樸素分類 、決策樹、
    發表于 09-01 06:57

    人工智能算法有哪些?

    很像一棵的枝干,故稱決策樹。隨機森林在機器學習中,隨機森林是一個包含多個決策樹分類器, 并且
    發表于 03-05 14:15

    樸素常見機器學習算法的介紹及其優缺點比較

    偏差和方差與模型復雜度的關系使用下圖更加明了: 當模型復雜度上升的時候,偏差會逐漸變小,而方差會逐漸變大。 常見算法優缺點 1.樸素
    發表于 09-29 16:18 ?7次下載
    <b class='flag-5'>樸素</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>等<b class='flag-5'>常見機器</b><b class='flag-5'>學習</b><b class='flag-5'>算法</b>的介紹及其優缺點比較

    機器學習樸素應用教程

    今天介紹機器學習中一種基于概率的常見分類方法,樸素
    發表于 11-25 12:49 ?1390次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學習</b>之<b class='flag-5'>樸素</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>應用教程

    樸素算法的后延概率最大化的認識與理解

    樸素法是基于貝葉斯定理與特征條件獨立假設的分類方法。最為廣泛的兩種分類模型是
    發表于 11-30 17:11 ?3332次閱讀
    <b class='flag-5'>樸素</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b><b class='flag-5'>算法</b>的后延概率最大化的認識與理解

    基于概率的常見分類方法--樸素

    本文介紹機器學習中一種基于概率的常見分類方法,樸素
    的頭像 發表于 02-03 14:37 ?5271次閱讀
    基于概率的<b class='flag-5'>常見</b>的<b class='flag-5'>分類</b>方法--<b class='flag-5'>樸素</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>

    機器學習樸素

    學習過概率的人一定知道貝葉斯定理,在信息領域內有著無與倫比的地位。算法是基于貝葉斯定理的一類算法
    發表于 05-29 09:01 ?909次閱讀

    數據挖掘常用算法

    本視頻主要詳細介紹了數據挖掘常用算法,分別是樸素、邏輯
    的頭像 發表于 04-10 16:32 ?1.3w次閱讀

    決策樹的結構/優缺點/生成

    決策樹(DecisionTree)是機器學習中一種常見算法,它的思想非常樸素,就像我們平時利用
    發表于 03-04 10:11 ?8373次閱讀

    樸素分類 樸素算法的優點

    樸素方法是在
    的頭像 發表于 10-02 17:14 ?9383次閱讀

    樸素算法原理做展開介紹

    在眾多機器學習分類算法中,本篇我們提到的樸素
    的頭像 發表于 01-16 10:11 ?1756次閱讀
    對<b class='flag-5'>樸素</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b><b class='flag-5'>算法</b>原理做展開介紹
    主站蜘蛛池模板: 亚洲欧美日本中文子不卡| 给我免费播放片bd国语| 久久一本综合| yellow高清免费观看日本| 色婷婷激婷婷深爱五月小蛇| 国产精品久久久久久免费字体| 冰山高冷受被c到哭np双性| 日本一本免费线观看视频| 国产亚洲精品久久孕妇呦呦你懂| 伊人久久大香线蕉影院95| 啪啪激情婷婷久久婷婷色五月| 国产色婷婷亚洲99麻豆| 18av 在线| 香蕉久久夜色精品国产小说| 麻豆无人区乱码| 国产精品一区二区免费| 中文字幕一区中文亚洲| 特黄特色大片免费播放器9| 快播萝莉影院| 国产欧洲野花A级| 99精品在线| 亚洲精品久久国产高清| 強姧伦久久久久久久久| 久草在线草a免费线看| 国产69精品久久久久乱码免费 | 窝窝色资源站| 久欠热视频精品首页| 国产精品视频人人做人人爽| 在线看片av以及毛片| 兔费看少妇性L交大片免费| 米奇在线8888在线精品视频| 国产亚洲精品字幕在线观看| eussse手机电影在线观看| 亚洲人女同志video| 色翁荡息又大又硬又粗又爽电影| 久久久久国产一级毛片高清片 | 久久国产主播福利在线| 国产成人免费a在线资源| 97资源站超碰在线视频| 亚洲日本va中文字幕久久| 上课失禁丨vk|