R Code
x <- cbind(x_train,y_train)
# Train the model using the training sets and check score
logistic <- glm(y_train ~ ., data = x,family='binomial')
summary(logistic)
#Predict Output
predicted= predict(logistic,x_test)
3.決策樹
這是我最喜歡的算法之一,我經(jīng)常使用它。 它是一種主要用于分類問題的監(jiān)督學(xué)習(xí)算法,令人驚訝的是,它可以適用于分類和連·續(xù)因變量。 在該算法中,我們將群體分為兩個(gè)或多個(gè)均勻集合。 這是基于最重要的屬性/自變量來做出的并將它們分為不同的組。關(guān)于決策樹的更多細(xì)節(jié),你可以閱讀決策樹簡(jiǎn)介
?
在上圖中,您可以看到根據(jù)多個(gè)屬性將群體分為四個(gè)不同的群組,以確定用戶“是否可以玩”。為了 將人口分為不同的特征群體,它使用了諸如Gini,信息增益,卡方,熵等各種技術(shù)。
?
了解決策樹如何運(yùn)作的最佳方法是播放Jezzball - 微軟的經(jīng)典游戲(下圖)。 大體上就是,來一起在屏幕上滑動(dòng)手指,筑起墻壁,掩住移動(dòng)的球吧。
Python Code
#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import tree
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create tree object
model = tree.DecisionTreeClassifier(criterion='gini')
# for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
R Code
library(rpart)
x <- cbind(x_train,y_train)
# grow tree
fit <- rpart(y_train ~ ., data = x,method="class")
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
4.SVM(支持向量機(jī))
這是一種分類方法。 在這個(gè)算法中,我們將每個(gè)數(shù)據(jù)項(xiàng)目繪制為n維空間中的一個(gè)點(diǎn)(其中n是擁有的特征數(shù)),每個(gè)特征的值是特定坐標(biāo)的值。
例如,如果我們有一個(gè)人的“高度”和“頭發(fā)長(zhǎng)度”這兩個(gè)特征,我們首先將這兩個(gè)變量繪制在二維空間中,其中每個(gè)點(diǎn)都有兩個(gè)坐標(biāo)(這些坐標(biāo)稱為支持向量)
?
現(xiàn)在,我們將找到一些可以將數(shù)據(jù)分割成兩類的線。 而我們想要的線,就是使得兩組數(shù)據(jù)中最近點(diǎn)到分割線的距離最長(zhǎng)的線。
?
在上述示例中,將數(shù)據(jù)分成兩個(gè)不同分類的組的線是黑線,因?yàn)閮蓚€(gè)最接近的點(diǎn)距離線最遠(yuǎn)(紅線也可以,但不是一最遠(yuǎn))。 這條線是我們的分類器, 然后根據(jù)測(cè)試數(shù)據(jù)位于線路兩邊的位置,我們可以將新數(shù)據(jù)分類為什么類別。
Python Code
#Import Library
from sklearn import svm
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail.
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)
R Code
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~ ., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
5. 樸素貝葉斯
它是基于貝葉斯定理的分類技術(shù),假設(shè)預(yù)測(cè)因子之間是獨(dú)立的。 簡(jiǎn)單來說,樸素貝葉斯分類器假設(shè)類中特定特征的存在與任何其他特征的存在無(wú)關(guān)。 例如,如果果實(shí)是紅色,圓形,直徑約3英寸,則果實(shí)可能被認(rèn)為是蘋果。 即使這些特征依賴于彼此或其他特征的存在,一個(gè)樸素的貝葉斯分類器將考慮的是所有屬性來單獨(dú)地貢獻(xiàn)這個(gè)果實(shí)是蘋果的概率。
樸素貝葉斯模型易于構(gòu)建,對(duì)于非常大的數(shù)據(jù)集尤其有用。 除了簡(jiǎn)單之外,樸素貝葉斯也被稱為超高級(jí)分類方法。
評(píng)論
查看更多