• svm的第一个实例


     用的数据集是uci机器学习库的数据 ‘iris.data’

    from sklearn import svm
    import csv
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score
    from sklearn.metrics import confusion_matrix
    from sklearn.metrics import classification_report
    from sklearn.preprocessing import StandardScaler
    import numpy as np
    
    def change(s):
        #就是这一句话。。。。哎,以后发现类型判断错误,可以看看type的类别
        bs = str(s, encoding="utf8")
    
        if(bs=='Iris-virginica'):
            return 2
        elif (bs == 'Iris-setosa'):
            return 0
        elif (bs == 'Iris-versicolor'):
            return 1
    tezheng=[]#用来存放特征的东西
    cate=[]#用来存放结果
    path = 'iris.data'
    data=np.loadtxt(path, dtype=float, delimiter=',',converters={4: change})
    
    #遍历
    for content in data:
        #这句话非常的重要,将content转为list,才能正确放入到数据中
        content=list(content)
        #将前四个特征存入tezheng中,最后一列的=存入cate结果集中
        tezheng.append(content[0:4])
        cate.append(content[-1])
    
    
    #建立xvm的模型
    # 标准化sca转换
    scaler = StandardScaler()
    # 训练标准化对象
    scaler.fit(tezheng)
    # 转换数据集,一般是归一化处理
    traffic_feature= scaler.transform(tezheng)
    #分割测试集和训练集
    feature_train, feature_test, target_train, target_test = train_test_split(traffic_feature, cate, test_size=0.4,random_state=1)
    #svc分类器进行一个参数的设置
    clf = svm.SVC(C=1, kernel='rbf', gamma=20, decision_function_shape='ovr')
    # clf = svm.SVC(C=0.1, kernel='linear', decision_function_shape='ovr')
    #将训练数据放到里面,到这一步的时候 suv已经完成了
    clf.fit(feature_train,target_train)
    
    #这边是开始预测了,输入的测试集
    predict_results=clf.predict(feature_test)
    #预测结果和原来结果进行的一个对比
    print(accuracy_score(predict_results, target_test))
    #参数结果 包括准确率 召回率 f1
    print(classification_report(target_test, predict_results))
    

      

    0.8
                  precision    recall  f1-score   support
    
             0.0       1.00      0.68      0.81        19
             1.0       0.94      0.76      0.84        21
             2.0       0.63      0.95      0.76        20
    
       micro avg       0.80      0.80      0.80        60
       macro avg       0.86      0.80      0.80        60
    weighted avg       0.86      0.80      0.81        60
    
    
    Process finished with exit code 0
    

      

  • 相关阅读:
    项目设计之---------- 模版模式利用
    项目设计之一------简单工厂模式利用
    项目设计之----命令模式的利用
    项目设计之一---------- 代码重构
    项目设计之---------- 类的设计原则
    项目设计之一-------------项目包的设计原则(原)
    模式经验/理解
    Java常量定义需要注意事项及static作用(复习)
    H2数据库使用 详解
    开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表( 附加翻译) h2数据库
  • 原文地址:https://www.cnblogs.com/zhongyimeng/p/10521988.html
Copyright © 2020-2023  润新知