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.決策樹
這是我最喜歡的算法之一,我經常使用它。 它是一種主要用于分類問題的監督學習算法,令人驚訝的是,它可以適用于分類和連·續因變量。 在該算法中,我們將群體分為兩個或多個均勻集合。 這是基于最重要的屬性/自變量來做出的并將它們分為不同的組。關于決策樹的更多細節,你可以閱讀決策樹簡介
?
在上圖中,您可以看到根據多個屬性將群體分為四個不同的群組,以確定用戶“是否可以玩”。為了 將人口分為不同的特征群體,它使用了諸如Gini,信息增益,卡方,熵等各種技術。
?
了解決策樹如何運作的最佳方法是播放Jezzball - 微軟的經典游戲(下圖)。 大體上就是,來一起在屏幕上滑動手指,筑起墻壁,掩住移動的球吧。
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(支持向量機)
這是一種分類方法。 在這個算法中,我們將每個數據項目繪制為n維空間中的一個點(其中n是擁有的特征數),每個特征的值是特定坐標的值。
例如,如果我們有一個人的“高度”和“頭發長度”這兩個特征,我們首先將這兩個變量繪制在二維空間中,其中每個點都有兩個坐標(這些坐標稱為支持向量)
?
現在,我們將找到一些可以將數據分割成兩類的線。 而我們想要的線,就是使得兩組數據中最近點到分割線的距離最長的線。
?
在上述示例中,將數據分成兩個不同分類的組的線是黑線,因為兩個最接近的點距離線最遠(紅線也可以,但不是一最遠)。 這條線是我們的分類器, 然后根據測試數據位于線路兩邊的位置,我們可以將新數據分類為什么類別。
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. 樸素貝葉斯
它是基于貝葉斯定理的分類技術,假設預測因子之間是獨立的。 簡單來說,樸素貝葉斯分類器假設類中特定特征的存在與任何其他特征的存在無關。 例如,如果果實是紅色,圓形,直徑約3英寸,則果實可能被認為是蘋果。 即使這些特征依賴于彼此或其他特征的存在,一個樸素的貝葉斯分類器將考慮的是所有屬性來單獨地貢獻這個果實是蘋果的概率。
樸素貝葉斯模型易于構建,對于非常大的數據集尤其有用。 除了簡單之外,樸素貝葉斯也被稱為超高級分類方法。
評論
查看更多