本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】干货 | 详解支持向量机(附学习资源)(3)

时间:2017-02-06 20:17来源:118论坛 作者:开奖直播现场 点击:
假设我们有一个由绿色和红色点组成的数据集。当根据它们的坐标绘制散点图时,点形成具有绿色轮廓的红色圆形(看起来很像孟加拉国的旗子)。 如果

假设我们有一个由绿色和红色点组成的数据集。当根据它们的坐标绘制散点图时,点形成具有绿色轮廓的红色圆形(看起来很像孟加拉国的旗子)。

如果我们丢失了 1/3 的数据,那么会发生什么?如果无法恢复这些数据,我们需要找到一种方法来估计丢失的 1/3 数据。

那么,我们如何弄清缺失的 1/3 数据看起来像什么?一种方法是使用我们所拥有的 80%数据作为训练集来构建模型。但是使用什么模型呢?让我们试试下面的模型:

逻辑回归模型

决策树

支持向量机

对每个模型进行训练,然后用这些模型来预测丢失的 1/3 数据。下面是每个模型的预测结果:

wzatv:【j2开奖】干货 | 详解支持向量机(附学习资源)

模型算法比较的实现

下面是比较 logistic 模型、决策树和 SVM 的代码。

  importnumpy asnpimportpylab asplimportpandas aspdfromsklearn importsvmfromsklearn importlinear_modelfromsklearn importtreefromsklearn.metrics importconfusion_matrixx_min,x_max =0,15y_min,y_max =0,10step =.1# to plot the boundary, we're going to create a matrix of every possible point# then label each point as a wolf or cow using our classifierxx,yy =np.meshgrid(np.arange(x_min,x_max,step),np.arange(y_min,y_max,step))df =pd.DataFrame(data={'x':xx.ravel(),'y':yy.ravel()})df['color_gauge']=(df.x-7.5)**2+(df.y-5)**2df['color']=df.color_gauge.apply(lambdax:"red"ifx <=15else"green")df['color_as_int']=df.color.apply(lambdax:0ifx=="red"else1)print"Points on flag:"printdf.groupby('color').size()printfigure =1# plot a figure for the entire datasetforcolor indf.color.unique():idx =df.color==color pl.subplot(2,2,figure)pl.scatter(df[idx].x,df[idx].y,color=color)pl.title('Actual')train_idx =df.x <10train =df[train_idx]test =df[-train_idx]print"Training Set Size: %d"%len(train)print"Test Set Size: %d"%len(test)# train using the x and y position coordiantescols =["x","y"]clfs ={"SVM":svm.SVC(degree=0.5),"Logistic":linear_model.LogisticRegression(),"Decision Tree":tree.DecisionTreeClassifier()}# racehorse different classifiers and plot the resultsforclf_name,clf inclfs.iteritems():figure +=1# train the classifierclf.fit(train[cols],train.color_as_int)# get the predicted values from the test settest['predicted_color_as_int']=clf.predict(test[cols])test['pred_color']=test.predicted_color_as_int.apply(lambdax:"red"ifx==0else"green")# create a new subplot on the plotpl.subplot(2,2,figure)# plot each predicted colorforcolor intest.pred_color.unique():# plot only rows where pred_color is equal to coloridx =test.pred_color==color pl.scatter(test[idx].x,test[idx].y,color=color)# plot the training set as wellforcolor intrain.color.unique():idx =train.color==color pl.scatter(train[idx].x,train[idx].y,color=color)# add a dotted line to show the boundary between the training and test set# (everything to the right of the line is in the test set)#this plots a vertical linetrain_line_y =np.linspace(y_min,y_max)#evenly spaced array from 0 to 10train_line_x =np.repeat(10,len(train_line_y))#repeat 10 (threshold for traininset) n times# add a black, dotted line to the subplotpl.plot(train_line_x,train_line_y,'k--',color="black")pl.title(clf_name)print"Confusion Matrix for %s:"%clf_name printconfusion_matrix(test.color,test.pred_color)pl.show()

wzatv:【j2开奖】干货 | 详解支持向量机(附学习资源)

在 Rodeo 中复制和运行上面的代码。

结果

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容