barcaisrio 2023-02-27 22:30 采纳率: 0%
浏览 39
已结题

多分类任务的分类效果极差

读取csv文件并进行8分类
csv文件数据集如下:

img


最后一列为label:1-8,即8分类
尝试:dag-SCM/简单的深度学习nn
问题:如果不进行normalization,则完全不学习,分类效果极差,acc=10,结果如下图:

img

进行normalization,prediction为0,无标签,混淆矩阵如下

img

  • 写回答

5条回答 默认 最新

  • 「已注销」 2023-02-28 07:19
    关注

    参考GPT和自己的思路,首先,您提到的csv文件似乎有一些格式问题。网络列之间似乎缺少空格或逗号分隔符,可能是由于剪切和粘贴时发生了错误。另外,您的第7列似乎也被拆分成了“network”和“8”的两个单词。如果您可以将数据格式化并重新发布,这将有助于更好地理解您的数据。

    其次,您提到如果不进行数据标准化,分类效果很差,这是可以理解的。对于基于距离或相似度的算法(如SVM),如果不对输入数据进行标准化,则其中一些特征的值范围可能会远远大于其他特征。这将导致某些特征对距离度量的影响远大于其他特征,从而影响分类器的性能。

    您提到尝试了两种算法:dag-SCM和简单的深度学习nn。无论您使用哪种算法,都应该在输入数据之前对其进行标准化。如果您使用的是深度学习算法,则通常会将数据标准化为均值为0,标准差为1的标准正态分布。如果您使用的是SVM等算法,则可以使用min-max标准化将所有特征缩放到0到1之间。

    最后,关于您的混淆矩阵:如果分类器的预测结果与真实标签相差太远,那么混淆矩阵可能会变得非常不平衡。在这种情况下,精度不一定是最好的性能度量。您可以考虑使用其他度量,如F1分数或ROC曲线下面积(AUC),以更好地了解分类器的性能。
    以下是使用Python中的pandas和scikit-learn库进行数据读取、归一化、训练和预测的示例代码:

    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.svm import SVC
    from sklearn.metrics import accuracy_score, confusion_matrix
    
    # 读取CSV文件
    df = pd.read_csv('data.csv')
    
    # 分割特征和标签
    X = df.iloc[:, :-1]
    y = df.iloc[:, -1]
    
    # 将数据集分割成训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 归一化特征数据
    scaler = StandardScaler()
    X_train = scaler.fit_transform(X_train)
    X_test = scaler.transform(X_test)
    
    # 训练SVM分类器
    clf = SVC(kernel='rbf', C=0.03125, gamma=3.0517578125e-05)
    clf.fit(X_train, y_train)
    
    # 在测试集上进行预测
    y_pred = clf.predict(X_test)
    
    # 计算预测准确率和混淆矩阵
    acc = accuracy_score(y_test, y_pred)
    cm = confusion_matrix(y_test, y_pred)
    print('Test accuracy:', acc)
    print('Confusion matrix:', cm)
    

    请注意,上述示例代码中的SVM参数是使用GridSearchCV进行超参数优化后得到的最佳参数。您可以根据需要更改SVM的参数和超参数优化的方法。此外,如果您使用的是其他分类算法(例如神经网络),则需要相应地更改代码。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 创建了问题 2月27日

悬赏问题

  • ¥15 python变量和列表之间的相互影响
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)