• 机器学习 machine learning


    1.项目介绍

    机器学习(Machine Learning)正在广泛应用于各种领域,不断学习,充实自己,才能跟上步伐。

    在Gihub发现了一个项目,作者写了自己的学习过程,图文并茂,由浅入深,有完整的Python代码,非常值得借鉴。但英文读起来不方便,因此,我和小伙伴一起,把它翻译成了中文,截至目前,包含以下内容:

    • 数据预处理

    • 简单线性回归

    • 多元线性回归

    • 逻辑回归

    • k近邻法(k-NN)

    • 支持向量机(SVM)

    • 决策树

    • 随机森林

    项目地址:

    https://github.com/MachineLearning100/100-Days-Of-ML-Code

    2.例子

    支持向量机(support vector machine):

    Python代码:

      1 #Day13: Support Vector Machine (SVM)
      2 
      3  
      4 
      5 #Importing the libraries
      6 
      7 import numpy as np
      8 
      9 import matplotlib.pyplot as plt
     10 
     11 import pandas as pd
     12 
     13  
     14 
     15 #Importing the dataset
     16 
     17 dataset = pd.read_csv('../datasets/Social_Network_Ads.csv')
     18 
     19 X = dataset.iloc[:, [2, 3]].values
     20 
     21 y = dataset.iloc[:, 4].values
     22 
     23  
     24 
     25 #Splitting the dataset into the Training set and Test set
     26 
     27 from sklearn.cross_validation import train_test_split
     28 
     29 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
     30 
     31  
     32 
     33 #Feature Scaling
     34 
     35 from sklearn.preprocessing import StandardScaler
     36 
     37 sc = StandardScaler()
     38 
     39 X_train = sc.fit_transform(X_train)
     40 
     41 X_test = sc.transform(X_test)
     42 
     43  
     44 
     45 #Fitting SVM to the Training set
     46 
     47 from sklearn.svm import SVC
     48 
     49 classifier = SVC(kernel = 'linear', random_state = 0)
     50 
     51 classifier.fit(X_train, y_train)
     52 
     53  
     54 
     55 #Predicting the Test set results
     56 
     57 y_pred = classifier.predict(X_test)
     58 
     59  
     60 
     61 #Making the Confusion Matrix
     62 
     63 from sklearn.metrics import confusion_matrix
     64 
     65 cm = confusion_matrix(y_test, y_pred)
     66 
     67  
     68 
     69 #Visualising the Training set results
     70 
     71 from matplotlib.colors import ListedColormap
     72 
     73 X_set, y_set = X_train, y_train
     74 
     75 X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
     76 
     77                      np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
     78 
     79 plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
     80 
     81              alpha = 0.75, cmap = ListedColormap(('red', 'green')))
     82 
     83 plt.xlim(X1.min(), X1.max())
     84 
     85 plt.ylim(X2.min(), X2.max())
     86 
     87 for i, j in enumerate(np.unique(y_set)):
     88 
     89     plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
     90 
     91                 c = ListedColormap(('red', 'green'))(i), label = j)
     92 
     93 plt.title('SVM (Training set)')
     94 
     95 plt.xlabel('Age')
     96 
     97 plt.ylabel('Estimated Salary')
     98 
     99 plt.legend()
    100 
    101 plt.show()
    102 
    103  
    104 
    105 #Visualising the Test set results
    106 
    107 from matplotlib.colors import ListedColormap
    108 
    109 X_set, y_set = X_test, y_test
    110 
    111 X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
    112 
    113                      np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
    114 
    115 plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
    116 
    117              alpha = 0.75, cmap = ListedColormap(('red', 'green')))
    118 
    119 plt.xlim(X1.min(), X1.max())
    120 
    121 plt.ylim(X2.min(), X2.max())
    122 
    123 for i, j in enumerate(np.unique(y_set)):
    124 
    125     plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
    126 
    127                 c = ListedColormap(('red', 'green'))(i), label = j)
    128 
    129 plt.title('SVM (Test set)')
    130 
    131 plt.xlabel('Age')
    132 
    133 plt.ylabel('Estimated Salary')
    134 
    135 plt.legend()
    136 
    137 plt.show()

    输出结果:

     

  • 相关阅读:
    21个高质量的Swift开源iOS App
    浅谈 JavaScriptCore
    开发完 iOS 应用,接下去你该做的事
    Xcode8的调试技能Memory Graph 实战解决闭包引用循环问题
    减肥App计划
    在管理实际中,心态很重要,当你以欣赏的态度去看一件事,你便会看到许多优点,以批评的态度,你便会看到无数缺点。
    怎样做才是一个独立自主的人?
    《圣经、》箴言篇13.3
    做事情需要坚持需要毅力更加需要观察和方法。(人生会遭遇许多事,其中很多是难以解决的,这时心中被盘根错结的烦恼纠缠住,茫茫然不知如何面对?如果能静下心來思考,往往会恍然大悟。 )
    10000单词积累,从今天开始(待续)。。。
  • 原文地址:https://www.cnblogs.com/zhyongquan/p/9448329.html
Copyright © 2020-2023  润新知