/ Y. L s, s) e" A3 D2 }( I那么,P (Yes | Sunny) = 0.33 * 0.64 / 0.36 = 0.60>0.5,说明这个概率值更大。 6 K* s/ K4 s% K ' N/ N" r5 e4 b$ v& h* Q; h当有多种类别和多种特征时,预测的方法相似。朴素贝叶斯通常用于文本分类和多类别分类问题。 ; W4 c3 n% M- B4 T( u9 ?2 ? 5 c+ u( p2 t2 o1 I% w7 d0 `7 {#Import Library! O/ Z: \% X) ?! q* j: w
from sklearn.naive_bayes import GaussianNB* Y- \* N1 B0 r; D9 }6 b6 C, N
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset - s) q+ k; b, p5 a; g / M" k* ]) }& L# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link 2 \+ N5 E8 D: g" F6 f1 Y. M ; J% j' T, C b7 \# Train the model using the training sets and check score ! v+ _% M8 `4 a/ L" ^- g" i- Amodel.fit(X, y)6 B' f. R @" b$ j
" x' `# [% z4 G$ c+ P5 X, J6 |& o在用KNN前你需要考虑到: . `0 B- j: ]9 J: N1 Y7 i% U4 [! [: j; q; ~" u: H
KNN的计算成本很高. ~: V5 L/ v9 p$ \6 b8 I% y' c
- u2 t0 X/ n4 \& g
所有特征应该标准化数量级,否则数量级大的特征在计算距离上会有偏移。5 f% y7 [$ \0 }5 p
; w6 G3 f" A, d2 Q
在进行KNN前预处理数据,例如去除异常值,噪音等。 2 w7 p" c$ Y( N% P# t( V, P) |2 X A m0 r2 t3 ?" u
#Import Library$ U1 B$ b! T6 q0 @ x5 @
from sklearn.neighbors import KNeighborsClassifier ! e% m, T3 v& |" ~" N ! v" S* V1 H6 [& Q#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset2 ~$ X& {2 T2 G+ Y1 O
# Create KNeighbors classifier object model * [) E. J9 W7 S' T$ s - o# a8 J8 N0 O$ NKNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5 1 v0 w, ] B! L" U0 Q( c) b1 r, m, w+ ?
# Train the model using the training sets and check score& A! r, t( {: L6 P- F
model.fit(X, y) . @3 @8 u/ n/ ? Z2 m ' T. w. `3 V& P#Predict Output" o, U4 \ E& k! s0 m. n
predicted= model.predict(x_test)1 s$ F7 p2 R U; ]
7. K均值算法(K-Means)7 V! N1 B, M# }1 x
这是一种解决聚类问题的非监督式学习算法。这个方法简单地利用了一定数量的集群(假设K个集群)对给定数据进行分类。同一集群内的数据点是同类的,不同集群的数据点不同类。9 k8 @5 ~# k9 h! ]9 C' ]% g/ n
W+ {4 R \ R1 ~5 g* d$ I#Import Library 3 y: J8 y0 f: U Ufrom sklearn.cluster import KMeans$ v& m/ X- }- k5 D
0 p3 A% |( ^" ?
#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset Z7 m2 p5 ^) S* A, z6 S H" E! E# Create KNeighbors classifier object model ) r" ^/ Z' c/ Ck_means = KMeans(n_clusters=3, random_state=0) 0 [1 n4 b- r: f) f0 s* J( M* e7 g
# Train the model using the training sets and check score+ \' U2 t5 j0 W' l! R, `( `
model.fit(X) " J% d ]- \7 }0 I n" x% B5 h" X1 o4 v% K. S" m* F, s2 j
#Predict Output - `; Q6 T6 E' g. t+ C$ W3 _predicted= model.predict(x_test) p w( B# t7 t! \# d" J3 b
8.随机森林* J: R! _6 p1 F3 u5 O, g" m v: e
随机森林是对决策树集合的特有名称。随机森林里我们有多个决策树(所以叫“森林”)。为了给一个新的观察值分类,根据它的特征,每一个决策树都会给出一个分类。随机森林算法选出投票最多的分类作为分类结果。 9 p' W' T: m- j& Z, g- {5 E; d2 D _& v# I+ U5 j
怎样生成决策树: ( U) ^ X% T' M# @! V6 W' S5 H3 b
如果训练集中有N种类别,则有重复地随机选取N个样本。这些样本将组成培养决策树的训练集。 * S7 n8 v0 w" y " J, P0 I/ t* t4 t0 ]如果有M个特征变量,那么选取数m << M,从而在每个节点上随机选取m个特征变量来分割该节点。m在整个森林养成中保持不变。5 a z/ [7 L. Y, u
( z7 L' ^) S0 m: ~# \每个决策树都最大程度上进行分割,没有剪枝。* ^* ^1 B- D) i( ^; P, f
9 N0 m0 _5 U- d }6 z8 Z! s
#Import Library/ G; _. ^+ K' ~
from sklearn.ensemble import RandomForestClassifier; m5 o7 O. D+ g8 I' w6 Z8 {
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset1 N( l/ q8 V) p2 A8 h0 O3 D8 G
6 V) M/ N4 T t
# Create Random Forest object ( a" _4 K4 d: P1 Y$ Fmodel= RandomForestClassifier()$ ]5 Z L. g9 S$ t4 g; l8 d
. M/ o3 }9 w4 B
# Train the model using the training sets and check score 0 T) ]( v! ?3 K6 {+ Pmodel.fit(X, y) & K% R$ \# s# N8 D: J9 J& x$ f 5 ~9 z! O: ?9 ^3 u#Predict Output: N& D$ N0 J7 E3 c
predicted= model.predict(x_test)- [9 G( S" v$ R9 k9 m6 X
9.降维算法(Dimensionality Reduction Algorithms) 5 p% j$ A2 G7 O, I- r1 q4 {( T在过去的4-5年里,可获取的数据几乎以指数形式增长。公司/政府机构/研究组织不仅有了更多的数据来源,也获得了更多维度的数据信息。 * ]& ~/ ?2 e2 a- F+ A4 j' S) f. {$ C. G* }8 S" K1 p9 p- h% r
例如:电子商务公司有了顾客更多的细节信息,像个人信息,网络浏览历史,个人喜恶,购买记录,反馈信息等,他们关注你的私人特征,比你天天去的超市里的店员更了解你。 6 @+ M9 z% x6 {: ~! V+ v4 _; A- @! Y& v: ?8 t0 I
作为一名数据科学家,我们手上的数据有非常多的特征。虽然这听起来有利于建立更强大精准的模型,但它们有时候反倒也是建模中的一大难题。怎样才能从1000或2000个变量里找到最重要的变量呢?这种情况下降维算法及其他算法,如决策树,随机森林,PCA,因子分析,相关矩阵,和缺省值比例等,就能帮我们解决难题。; ]5 I4 c# ?6 s5 U3 S- z, Z
) V8 K# B! J# |8 s6 l( q 5 j: q& i" `, a0 f \#Import Library' W/ ?- F- O* T6 @1 Q" h
from sklearn import decomposition' j7 y, Z' j1 H. U: A$ V! F/ J* {
#Assumed you have training and test data set as train and test + V7 s$ { x2 U q% S) N# Create PCA obeject pca= decomposition.PCA(n_components=k) #default value of k =min(n_sample, n_features)6 v. C; a( s* ?- y6 L
# For Factor analysis ) t9 S( U" N8 C& i#fa= decomposition.FactorAnalysis()6 K/ {, `& r# q
# Reduced the dimension of training dataset using PCA ' p# ~9 N4 [5 L) }5 t) B3 r* m3 T( S ! x- h) c' a; {- ^: [5 O; b$ ytrain_reduced = pca.fit_transform(train)/ }% A# Z) |3 E. x9 x
+ J. ^! y9 U' d" ~* \* A
#Reduced the dimension of test dataset5 t# i, T! z& i7 x
test_reduced = pca.transform(test) . J9 V& Q, F9 C2 x( w) g. x" ]10.Gradient Boosing 和 AdaBoost& v2 u1 _/ a9 D6 m4 I9 M( l! t# V0 d
GBM和AdaBoost都是在有大量数据时提高预测准确度的boosting算法。Boosting是一种集成学习方法。它通过有序结合多个较弱的分类器/估测器的估计结果来提高预测准确度。这些boosting算法在Kaggle,AV Hackthon, CrowdAnalytix等数据科学竞赛中有出色发挥。" C5 e, b5 S$ y7 P, H8 J# S! e
; K3 _4 w; L0 W#Import Library( o" d: o4 j+ j3 m6 n) D
from sklearn.ensemble import GradientBoostingClassifier+ ~2 ]* {2 j$ A- S! i
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset # d. U U5 C5 [7 L6 D# Create Gradient Boosting Classifier object$ e& c0 [' x, T) b1 j6 G
model= GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0)3 A) E- H! H* F; p
& P$ C3 h+ m# s) \
# Train the model using the training sets and check score; @' Q. S3 H: q; P' u2 H
model.fit(X, y)* c( Q" l1 d4 g8 C" u# [
#Predict Output 3 f: {. }, A5 i/ ^4 s& m4 }predicted= model.predict(x_test)) }' e: O& w4 C% h
GradientBoostingClassifier 和随机森林是两种不同的boosting分类树。人们经常提问 这两个算法有什么不同。 ! a; Y; h9 n) {0 M- x# K2 l B$ R
原文链接:http://blog.csdn.net/han_xiaoyang/article/details/51191386! w8 \0 R6 U$ A: {6 Q
———————————————— 3 a* C% U! R4 x& t版权声明:本文为CSDN博主「_小羊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 0 l$ W2 V) M8 u) \' h2 s+ i原文链接:https://blog.csdn.net/qq_39303465/article/details/79176075 / [# L7 o9 k, l' H/ I7 b 9 U# M" K0 h9 E% q6 Q0 O 0 {$ _# |3 v/ K% P* T