美文网首页
python3.6 sklearn(1)

python3.6 sklearn(1)

作者: 朝闻道_aa5e | 来源:发表于2018-09-25 23:31 被阅读0次

    Python3.6 scikit-learn(1)

    1. 机器学习方法的分类

    • 监督学习
    • 无监督学习
    • 半监督学习
    • 强化学习
    • 遗传算法

    2. scikit-learn

    2.1 sklearn中的通用学习模式

    sklearn 中有自带的数据库,可以通过导入模块的数据库来进行训练学习,导入方式如下:

    import numpy as np
    from sklearn import datasets
    from sklearn.cross_validation import train_test_split 
    from sklearn.neighbors import KNeighborsClassifier    #KNN
    

    在以上导入的数据集以及方法中,sklearn.cross_validation1.9版本之后就被弃用了,1.9之后的版本中要用 sklearn.model_selection 来进行相关的操作,后面的东西都一样。

    2.2 通过KNN算法实现分类

    ​ 通过sklearn中自带的KNN学习算法,可以对datasets中的鸢尾花 (iris) 实现分类,具体的过程如下:

    iris = datasets.load_iris()  #导入iris数据集
    iris_X = iris.data  #iris的特征数据
    iris_y = iris.target #iris的分类
    
    #print (iris_X[:2,:])
    #划分训练集与测试集,其中测试集占总数据的30%
    X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size=0.3)
    knn = KNeighborsClassifier()  #导入KNN算法
    knn.fit(X_train, y_train)  #KNN对于X,y进行学习
    print (knn.predict(X_test)) #模型在X测试集上的预测
    print (y_test)  #真实的情况
    

    ​ 程序最后的输出结果如下:

    knn.predict(X_test):
    [1 0 2 0 2 1 1 2 1 2 2 2 2 0 1 2 1 0 2 1 0 2 2 2 1 0 1 2 2 0 2 2 1 1 0 0 1 1 0 0 1 0 2 1 1]
    y_test:
    [1 0 2 0 2 1 1 2 1 2 2 2 2 0 1 2 1 0 2 1 0 2 2 2 1 0 1 2 2 0 2 2 1 1 0 0 1 1 0 0 1 0 2 2 1]
    

    ​ 通过对比上述结果可以看到,模型预测的情况与真实情况并不是完全的相同,这也是所有机器学习算法的特点,即不可能做到对于结果的100%正确预测。


    相关文章

      网友评论

          本文标题:python3.6 sklearn(1)

          本文链接:https://www.haomeiwen.com/subject/itmroftx.html