Este código es un ejemplo de un clasificador de máquina de vectores de soporte (SVM) en aprendizaje automático.

import time
import random
import xlsxwriter
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.decomposition import PCA

def file2matrix(filename):
    fr = open(filename)
    lines = fr.readlines()
    numberOfLines = len(lines)
    returnMat = []
    returnLabel = []

    for line in lines:
        line = line.strip()
        listFromLine = line.split('\t')
        if len(listFromLine) == 51:  # 假设每行包含50个特征值和1个标签值
            returnMat.append(listFromLine[0:50])  # 将前50个元素添加到returnMat中
            returnLabel.append(listFromLine[-1])  # 将最后一个元素作为标签添加到returnLabel中

    returnMat = np.array(returnMat, dtype=float)  # 将returnMat转换为浮点类型的NumPy数组
    returnLabel = np.array(returnLabel, dtype=float)  # 将returnLabel转换为浮点类型的NumPy数组
    return returnMat, returnLabel

def autoNorm(dataSet):
    minVals = dataSet.min(0)
    maxVals = dataSet.max(0)
    normDataSet = (dataSet - minVals) / (maxVals - minVals)
    return normDataSet

# 从文件中加载数据
datingDataMat, datingLabels = file2matrix(r'D:\Project\50数据.txt')

# 对数据进行归一化
dataSet = autoNorm(datingDataMat)

# 使用PCA进行降维
pca = PCA(n_components=3)
dataSet = pca.fit_transform(dataSet)

start = time.perf_counter()

testsize = 0.25
# 将数据集拆分为训练集和测试集
xtrain, xtest, ytrain, ytest = train_test_split(dataSet, datingLabels, test_size=testsize)

# 创建并训练SVM模型
model = svm.SVC()
model.fit(xtrain, ytrain)

error = 0
for i in range(len(xtest)):
    # 预测每个测试实例的标签
    result = model.predict(xtest[i, :].reshape(1, -1))
    if result != ytest[i]:
        error += 1

accuracy = (1 - error / len(xtest)) * 100
print('准确率:', accuracy, '%')

end = time.perf_counter()
duration = end - start
print('耗时', duration, '秒')

Roble

Este código es un ejemplo de un clasificador de máquina de vectores de soporte (SVM) en aprendizaje automático.

Las funciones principales son las siguientes:

  1. Lea el conjunto de datos del archivo proporcionado (ruta de archivo filename).
  2. Normalice el conjunto de datos para escalar los valores propios al mismo rango.
  3. La reducción de dimensionalidad del conjunto de datos se realizó mediante análisis de componentes principales (PCA), y los datos se redujeron de las 50 dimensiones originales a 3 dimensiones.
  4. Divida el conjunto de datos en conjuntos de entrenamiento y prueba.
  5. Cree un modelo clasificador SVM y entrene el modelo utilizando el conjunto de entrenamiento.
  6. Se realiza una predicción para cada instancia del conjunto de prueba y se calcula la precisión.
  7. Precisión de salida y tiempo de ejecución del código.

En general, el código implementa un clasificador basado en SVM para clasificar un conjunto de datos y evalúa la precisión del clasificador.

Supongo que te gusta

Origin blog.csdn.net/weixin_55008315/article/details/131642676
Recomendado
Clasificación