-
1 # focus19
-
2 # Rockets
“迴歸”是用來預測持續價值的。分類是用來預測一個數據點的類別,也就是離散價值。
舉個例子:我有一間房,房子有W間房間,X間臥室,Y建築面積,和Z佔地面積。基於近期周圍其他房屋的成交價,我房子能賣多少錢?我們可以用“迴歸”來解決這類問題。
再舉個例子:我有一個不知名的水果,黃色,5.5英寸長,直徑1英寸,密度為X。這種水果是什麼?我就要利用分類來解決這類問題,最後將它定為香蕉,從而和蘋果、桔子區分開。
下面有一張很好的資訊圖,它可以幫你搞清楚哪些問題該用哪種方法:
-
3 # 極數蝸牛
其實分類問題和迴歸問題的區別可以看成“點”與線的區別。線是有點組成,是連續的;而點是獨立的,非連續。但是,一條短的線可以看成一個大的點,所以他們有時候可以相互關係。
1、模型預測結果來看
以廣義線性模型為例,既可以做迴歸又可以做分類
簡單線性模型一般是做迴歸用的,比如有房子的面積,地段,房間個數等,來預測房價。而房價可以是【0,10萬】之間的任意值。可以用 wx+b的形式來表示。
但如果將預測的結果是否是高房價,那就是預測結果是或否,這就是分類問題,可用了邏輯迴歸方程表示,即在簡單線性模型上增加一個轉變函式 sgn(wx+b)。
你可以看到他們的計算過程是相類似的,就是最後輸出結果或模型方程不同。
類似的,還有決策樹,SVM等演算法,也可以做分類和迴歸。
但迴歸預測的結果,可能不會在訓練集中出現,甚至超出訓練集的範圍,比如房價可能超過10萬元/平方米;但分類預測(有監督模型)結果一定會在訓練集出現,也就是是分類是先知的。比如是高房價還是低房價。
2.從模型效能評價來看
迴歸演算法因為是連續值,因此用迴歸演算法評價模型效能時候,一般使用的平均方差,即(真實值-預測值)^2/M,M是表示預測樣本個數。值越小表示效能越好。
分類演算法,用混沌矩陣來進行評估如下圖:
或者ROC曲線和AUC面積
-
4 # 由科技
人工智慧的概念比較寬泛,它包括機器學習和深度學習,並且每次技術的變革都是在解決相關智慧技術遇到的瓶頸問題。
比如:深度學習在機器學習的基礎上引入了神經網路,它可以自動學習特徵和任務之間的關聯,還能從簡單特徵中提取複雜的特徵,這樣就解決了傳統機器學習特徵提取問題難的弊端。
演算法一:邏輯迴歸(Logistic Regression, LR)
它為邏輯迴歸分析,是分類和預測演算法中的一種。採用的是監督學習的方式,透過分析歷史資料特徵來對未來事件發生的機率進行預測。
代表函式是sigmoid函式,它具有我們需要的一切優美特性,其定義域在全體實數,值域在[0, 1]之間,並且在0點值為0.5。公式如下:
那麼,如何將f(x)轉變為sigmoid函式呢?
設p(x)=1即為表示具有特徵x的樣本被分到類別1的機率,那麼p(x)/[1-p(x)]則被定義為讓步比(odds ratio)。
為了解除p(x),則引入對數:
那麼可得:
此時的p(x)這就是需要的sigmoid函式。如果要機器學習,那麼根據已知資料,擬合出該式中n個引數c即可。
演算法二:決策樹
它的思想是:尋找一種演算法,計算機可以根據該演算法完成像if-else結構一樣從根開始不斷判斷選擇到葉子節點的樹,這樣的樹就稱為決策樹。
該方法的重點就在於如何從這麼多的特徵中選擇出有價值的,並且按照最好的順序由根到葉。
資訊增益則是最常見的演算法之一。它劃分資料集的規則是將無序的資料變得更加有序。它涉及到資訊的有序無序問題,那麼就要考慮資訊熵(另一種方法是基尼不純度)了。
熵在資訊理論中代表隨機變數不確定度的度量。一個離散型隨機變數 X的熵 H(X)定義為:
P(x),i=1,2,…,X為信源取第i個符號的機率
資訊熵用來衡量資訊量的大小:
若不確定性越大,則資訊量越大,熵越大;
若不確定性越小,則資訊量越小,熵越小。
比如我們要計算“夏天下雪”這個事件的資訊熵,這個資訊量很大,那麼熵也很大。
該演算法計算複雜度不高,輸出結果易於理解,對中間值缺失不敏感,可以處理不相關的特徵資料,它是一種非引數的監督式學習的方法,常常用於分類和迴歸。
情況三:樸素貝葉斯
在機器學習分類演算法中,樸素貝葉斯和絕大多數的分類演算法不同。
例如:邏輯迴歸(LR),svm,決策樹,KNN等等,這些都是判別方法。
他們是直接學習出特徵輸出Y和特徵X之間的關係:決策函式Y = F(X)或條件分佈P(Y|X),然而樸素貝葉斯是生成方法,它直接找出特徵輸出Y和特徵X的聯合分佈P(X,Y),則可知:P(Y|X) = P(X,Y)/P(X)
首先回顧一下樸素貝葉斯相關的統計學知識:
貝葉斯的思想可以等效為:先驗機率+資料=後驗機率。
一般來說先驗機率就是我們對於資料所在領域的歷史經驗,但是這個經驗常常難以量化或者模型化,那麼我們可以假設先驗分佈的模型,比如正態分佈,高斯分佈等。
假如X和Y相互獨立,則有:
假如X和Y不相互獨立,則公式:
Or:
那麼,則有全機率公式:
從上面的公式很容易得出貝葉斯公式:
該演算法在scikit-learn中,一共有3個樸素貝葉斯的分類演算法類。
它們分別是GaussianNB,BernoulliNB和MultinomialNB。
其中:
1)GaussianNB表示先驗為高斯分佈的樸素貝葉斯;
2)BernoulliNB表示先驗為伯努利分佈的樸素貝葉斯;
3)MultinomialNB表示先驗為多項式分佈的樸素貝葉斯。
這三個類適用的分類場景各不相同,一般來說:
1)假如樣本特徵的分佈絕大部分是連續值,使用GaussianNB;
2)假如樣本特徵是二元離散值或者很稀疏的多元離散值,則BernoulliNB;
3)假如樣本特徵的大部分是多元離散值,使用MultinomialNB。
總之在很多實際應用中,貝葉斯理論很好用,比如垃圾郵件分類,文字分類。
總之機器學習演算法是構架深度學習神經網路的基礎,只有我們打好了基礎,我們才能更好的學習,深度學習的精髓。
-
5 # 北航秦曾昌
機器學習簡單來說就是尋找一個function 使得輸入經過這個function得到想要的輸出。
常見的可以將機器學習問題分為三大類,分別是迴歸問題,分類問題和結構化的問題。其中迴歸和分類問題,大家可能比較熟悉,我們先來解釋這個兩個是什麼意思?
對於迴歸問題,簡單來說就是給定一個輸入,經過一個function,我們得到一個“scalar”,比如經典的房價預測問題,我們的希望輸入一個房子的特徵,例如房子的大小、地理位置、環境、房型等等資訊,模型能預測一下此種房子的價錢,而價錢就是一個scalar。
對於分類問題,更容易啦,給定一個輸入,經過一個function,我們希望得到一個“class”,比如輸出可以是一個one-hot形式的vector,例如三分類問題,我們就可以按照如下形式表示輸出:
那最後什麼是結構性問題呢?近幾年,機器學習發展迅速,處理的問題也逐漸複雜,不僅僅是用溫磊或者回歸問題不能很合適的概括,比如自然語言處理中,生成一段文字、影象處理中,我們對一張圖片進行風格轉移,還有當下很熱門的生成對抗網路,它們處理的問題都可以被看成是結構性問題,它們不是單純的輸出一個component,而是一個由多個具有依賴關係的components組合成的輸出,輸出不在是指考慮當下,而是需要統籌全域性,為了更成一個更好的句子或者是一張更具有藝術感的圖片、或者是達到遊戲最終的勝利。以GAN為例,它的generator就是負責生成目標at the component level,而discriminator 的作用則是起到了評估整個生成效果,從而find the best one 。
-
6 # C14跨境電商一起聊聊
最重要的判別就是連續情況,還是離散情況~ 分類,就是離散的,比如病情分為有病,無病之類的這種離散可列舉,迴歸就是連續的,比如從1999到2018的gdp增長情況,可分年月日天等~~
回覆列表
從預測結果上來說,分類問題是離散值,迴歸問題是連續值;從評價其效能的指標上說,分類一般是精確率,召回率,迴歸是均方誤差等;在演算法設計的思路上,用來分類的演算法在構建時一般更加註重類與類之間的可區分度,而沒必要過多關注類內資料的組織形式,迴歸問題則更加傾向於模型對資料的整體擬合能力,它試圖尋找出資料本身潛在的模式,這一點上可以說要比分類問題分析的更加精細。個人認為,迴歸問題如果模型選取不恰當,更容易產生過擬合。對於很多演算法,分類與迴歸並沒有絕對的界限,往往只需要進行簡單的修改比如特徵離散化就可以轉換,比如決策樹有分類樹和迴歸樹,支援向量有svm和svr。bagging,gbdt等既可以分類又可以迴歸。以上只是我臨時想到的一些方面,歡迎補充或留言交流~