- y, M* z2 x, K' w5 K/ `+ Z9 A) r- h, O2 [" B9 N
# Create tree object ( Y; \9 b5 H- ~" J1 j+ {$ P
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini ' e5 C4 S$ l1 a
, G: h8 Z) x; i2 U# model = tree.DecisionTreeRegressor() for regression ' L7 W" X# D- T! Y3 ^- h : Z; U+ z4 ?8 l( x0 g4 q# Train the model using the training sets and check score$ H5 r# {6 V# _) j( e& E- m
model.fit(X, y) / y5 u, p2 ?$ z# J% ^ A& zmodel.score(X, y)0 S- M# N' Z9 X! a5 k5 F- C" y% M
6 w& l5 ^5 ^( W- a* o) @8 }
#Predict Output ! g' J5 ]6 w) E- b0 gpredicted= model.predict(x_test) 1 o# X$ _8 Y$ g8 Q; j9 V8 r4. 支持向量机(SVM) ( b2 C2 l! g; C+ I# J1 G这是一个分类算法。在这个算法中我们将每一个数据作为一个点在一个n维空间上作图(n是特征数),每一个特征值就代表对应坐标值的大小。比如说我们有两个特征:一个人的身高和发长。我们可以将这两个变量在一个二维空间上作图,图上的每个点都有两个坐标值(这些坐标轴也叫做支持向量)。 E6 C4 L3 } [. b* L) ]
; y' I% K4 X: i9 v5 M7 K
现在我们要在图中找到一条直线能最大程度将不同组的点分开。两组数据中距离这条线最近的点到这条线的距离都应该是最远的。( l I5 R) y, `) v8 \
# i; N0 k) W2 J; ]% l# E5 e( w! }
5 [* ~1 {6 Z6 l! T7 r0 ~" s g
- \! q$ [$ z" k1 L* w在上图中,黑色的线就是最佳分割线。因为这条线到两组中距它最近的点,点A和B的距离都是最远的。任何其他线必然会使得到其中一个点的距离比这个距离近。这样根据数据点分布在这条线的哪一边,我们就可以将数据归类。 , q0 C. m. o9 N* u) U h" q( r1 |# B2 e) J1 P0 @4 c* s- i" A
#Import Library* b3 b. ]3 O2 f: O
from sklearn import svm ; o% D/ W- G! |2 p#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset 4 Z1 Z) j5 W5 f/ R. W8 r# Create SVM classification object + H+ a. {/ R) P" K5 c
- N! t( b3 ~) S5 u, }1 Y; p' ^
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail. ' [5 `; ^) ^2 B3 `* T" \4 e# W4 E j# f( F
# Train the model using the training sets and check score 8 a/ G" e, ]) N! B4 cmodel.fit(X, y) 7 V9 X& y5 j7 o/ l- w9 _model.score(X, y)& ]5 C$ r: L2 z7 `1 L) W
6 ]7 k1 S" R; o3 A" A q3 j+ b#Predict Output% h( W x& C! d- E4 r
predicted= model.predict(x_test)5 z" y/ y0 b" h
5. 朴素贝叶斯 ' _$ c6 K$ ~# B& _. V6 {! E7 \这个算法是建立在贝叶斯理论上的分类方法。它的假设条件是自变量之间相互独立。简言之,朴素贝叶斯假定某一特征的出现与其它特征无关。比如说,如果一个水果它是红色的,圆状的,直径大概7cm左右,我们可能猜测它为苹果。即使这些特征之间存在一定关系,在朴素贝叶斯算法中我们都认为红色,圆状和直径在判断一个水果是苹果的可能性上是相互独立的。" i) r9 Z6 b0 j) @$ c5 C