1. 首页
  2. 技术文章

Python中的机器学习算法二

c、 决策树
在Python中,决策树属于有监督机器学习算法的范畴,可以用于分类和回归——尽管主要用于分类。该模型以一个实例为例,遍历树,并将重要特征与确定的条件语句进行比较。它是降到左边的子分支还是降到右边的子分支取决于结果。通常,更重要的特性更接近根。
决策树是Python中的一种机器学习算法,它可以处理分类变量和连续变量。在这里,我们把一个总体分成两个或更多的齐次集。让我们看看这个的算法

Python中的机器学习算法二
>>> from sklearn.cross_validation import train_test_split
>>> from sklearn.tree import DecisionTreeClassifier
>>> from sklearn.metrics import accuracy_score
>>> from sklearn.metrics import classification_report
>>> def importdata(): #Importing data
 balance_data=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-'+
'databases/balance-scale/balance-scale.data',
   sep= ',', header = None)
          print(len(balance_data))
          print(balance_data.shape)
          print(balance_data.head())
          return balance_data
>>> def splitdataset(balance_data): #Splitting data
          x=balance_data.values[:,1:5]
          y=balance_data.values[:,0]
          x_train,x_test,y_train,y_test=train_test_split(
              x,y,test_size=0.3,random_state=100)
          return x,y,x_train,x_test,y_train,y_test
>>> def train_using_gini(x_train,x_test,y_train): #Training with giniIndex
          clf_gini = DecisionTreeClassifier(criterion = "gini",
          random_state = 100,max_depth=3, min_samples_leaf=5)
          clf_gini.fit(x_train,y_train)
          return clf_gini
>>> def train_using_entropy(x_train,x_test,y_train): #Training with entropy
          clf_entropy=DecisionTreeClassifier(
          criterion = "entropy", random_state = 100,
          max_depth = 3, min_samples_leaf = 5)
          clf_entropy.fit(x_train,y_train)
          return clf_entropy
>>> def prediction(x_test,clf_object): #Making predictions
          y_pred=clf_object.predict(x_test)
          print(f"Predicted values: {y_pred}")
          return y_pred
>>> def cal_accuracy(y_test,y_pred): #Calculating accuracy
          print(confusion_matrix(y_test,y_pred))
          print(accuracy_score(y_test,y_pred)*100)
          print(classification_report(y_test,y_pred))
>>> data=importdata()

625
(625, 5)
0 1 2 3 4
0 B 1 1 1 1
1 R 1 1 1 2
2 R 1 1 1 3
3 R 1 1 1 4
4 R 1 1 1 5

>>> x,y,x_train,x_test,y_train,y_test=splitdataset(data)
>>> clf_gini=train_using_gini(x_train,x_test,y_train)
>>> clf_entropy=train_using_entropy(x_train,x_test,y_train)
>>> y_pred_gini=prediction(x_test,clf_gini)

Python中的机器学习算法二


>>> cal_accuracy(y_test,y_pred_gini)
[[ 0 6 7]
[ 0 67 18]
[ 0 19 71]]
73.40425531914893

>>> y_pred_entropy=prediction(x_test,clf_entropy)

Machine Learning Algorithms in Python 

>>> y_pred_entropy=prediction(x_test,clf_entropy)

Machine Learning Algorithms in Python 

>>> cal_accuracy(y_test,y_pred_entropy)
[[ 0 6 7]
[ 0 63 22]
[ 0 20 70]]
70.74468085106383

Machine Learning Algorithms in Python 


d、 支持向量机
 支持向量机是一种有监督分类算法,是Python中最重要的机器学习算法之一,它绘制了一条划分数据不同类别的线。在这个ML算法中,我们计算向量来优化直线。这是为了确保每组中最接近的点彼此距离最远。虽然你几乎总是会发现这是一个线性向量,它可以是其他的。
 在这个Python机器学习教程中,我们将每个数据项绘制为n维空间中的一个点。我们有n个特征,每个特征都有一个特定坐标的值。
 首先,让我们绘制一个数据集。


>>> from sklearn.datasets.samples_generator import make_blobs
>>> x,y=make_blobs(n_samples=500,centers=2,
           random_state=0,cluster_std=0.40)
>>> import matplotlib.pyplot as plt
>>> plt.scatter(x[:,0],x[:,1],c=y,s=50,cmap='plasma')

<matplotlib.collections.PathCollection object at 0x04E1BBF0>

>>> plt.show()

Python中的机器学习算法二
>>> import numpy as np
>>> xfit=np.linspace(-1,3.5)
>>> plt.scatter(X[:, 0], X[:, 1], c=Y, s=50, cmap='plasma')

<matplotlib.collections.PathCollection object at 0x07318C90>

>>> for m, b, d in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:
        yfit = m * xfit + b
        plt.plot(xfit, yfit, '-k')
        plt.fill_between(xfit, yfit - d, yfit + d, edgecolor='none',
        color='#AFFEDC', alpha=0.4)

[<matplotlib.lines.Line2D object at 0x07318FF0>]
<matplotlib.collections.PolyCollection object at 0x073242D0>
[<matplotlib.lines.Line2D object at 0x07318B70>]
<matplotlib.collections.PolyCollection object at 0x073246F0>
[<matplotlib.lines.Line2D object at 0x07324370>]
<matplotlib.collections.PolyCollection object at 0x07324B30>
>>> plt.xlim(-1,3.5)

(-1, 3.5)

>>> plt.show()

Machine Learning Algorithms in Python 


版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ1841324605,本站将立刻清除。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

服务热线:130-0886-1890

QR code