美文网首页
59. svm预测性别

59. svm预测性别

作者: 十里江城 | 来源:发表于2019-11-13 09:48 被阅读0次
    # 寻求一个最优的超平面
    # svm 核: line
    # 通过训练身高和体重,预测性别
    
    import cv2
    import matplotlib.pyplot as plt
    import numpy as np
    
    # data
    rand1 = np.array([[155, 48], [159, 50], [164, 53], [168, 56], [172, 60]])
    rand2 = np.array([[152, 53], [156, 55], [160, 56], [172, 64], [176, 65]])
    # label
    label = np.array([[0], [0] ,[0] ,[0] ,[0], [1] ,[1] ,[1] ,[1], [1]])
    
    # prepare data
    # 拼接数据
    data = np.vstack((rand1, rand2))
    data = np.array(data, dtype = 'float32')
    
    # 创建svm
    svm = cv2.ml.SVM_create()
    # 属性设置
    svm.setType(cv2.ml.SVM_C_SVC)
    svm.setKernel(cv2.ml.SVM_LINEAR)
    svm.setC(0.01)
    
    # train 
    result = svm.train(data, cv2.ml.ROW_SAMPLE, label)
    
    # predict
    pt_data = np.vstack([[167, 55], [162, 57]])
    pt_data = np.array(pt_data, dtype = 'float32')
    print('pt_data: ', pt_data)
    (par1, par2) = svm.predict(pt_data)
    # 预测值分别为0(女),1(男)
    print('par1: ', par1)
    print('par2: ', par2)
                      
    
    
    

    性别预测结果如下图中par2所示:


    image.png

    相关文章

      网友评论

          本文标题:59. svm预测性别

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