《Python数据分析与挖掘实战》第9章——svm1 背景与目标分析2 数据预处理3 模型构建

    import pandas as pd
    from pandas import DataFrame
    import numpy as np
    
    
    # 读取类型1的表格中的颜色矩数据
    d1 = pd.read_csv('type1.csv',encoding="gbk")
    # 读取类型2的表格中的颜色矩数据
    d2 = pd.read_csv('type2.csv',encoding="gbk")
    # 读取类型3的表格中的颜色矩数据
    d3 = pd.read_csv('type3.csv',encoding="gbk")
    # 读取类型4的表格中的颜色矩数据
    d4 = pd.read_csv('type4.csv',encoding="gbk")
    # 读取类型5的表格中的颜色矩数据
    d5 = pd.read_csv('type5.csv',encoding="gbk")
    
    ALLDATA = pd.concat([d1,d2,d3,d4,d5],ignore_index=True) # 做表格连接
    ALLDATA.to_excel('ALLDATA.xlsx',index=False) # 存储数据
[/code]

说明:求颜色矩之前需要将各个图片进行切割,但是,观察切割后的图片可以发现,有些图片的初始状态不在原图中央,使得切割后的图片还有较多白边,因此,笔者建议,若要想提高分类的准确度,后续可以尝试先手动将原始图片进行大致的切割,使得接下来要统一切割的时候,切到的图片都是能反映事实水质的图片。

#  3 模型构建

[/code]

```code
    inputfile = 'moment.csv'
    data = pd.read_csv(inputfile, encoding='gbk')
    # 注意,此处不能用shuffle
    sampler = np.random.permutation(len(data))
    d = data.take(sampler).as_matrix()
    
    data_train = d[:int(0.8*len(data)),:] #选取前80%做训练集
    data_test = d[int(0.8*len(data)):,:] #选取后20%做测试集
[/code]

```code
    # 构建支持向量机模型代码
    x_train = data_train[:, 2:]*30 #由于特征的取值均在0-1之间,直接使用会使得区分度较小,因此此处进行 放大特征
    y_train = data_train[:,0].astype(int)
    x_test = data_test[:, 2:]*30 #放大特征
    y_test = data_test[:,0].astype(int)
    
    # 导入模型相关的支持向量机函数  建立并且训练模型
    from sklearn import svm 
    model = svm.SVC()
    model.fit(x_train, y_train)
    import pickle
    pickle.dump(model, open('svcmodel.model','wb'))# model = pickle.load(open('svcmodel.model','rb'))
    
    
    cm_train = metrics.confusion_matrix(y_train, model.predict(x_train)) # 训练样本的混淆矩阵
    cm_test = metrics.confusion_matrix(y_test, model.predict(x_test)) # 测试样本的混淆矩阵
    
    df1 = DataFrame(cm_train, index = range(1,6), columns=range(1,6))
    df2 = DataFrame(cm_test, index = range(1,6), columns=range(1,6))
    df1.to_excel('trainPre.xlsx')
    df2.to_excel('testPre.xlsx')
    print model.score(x_train,y_train) # 评价模型训练的准确率
    print model.score(x_test,y_test) # 评价模型测试的准确率
[/code]

  
**备注:本章节完整代码详见** **[ 点击打开链接
](https://github.com/clover95/DataAnalysisbyPython/tree/master/chapter9) **  


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608151750993.gif)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值