Experimento de precisión de prueba, visualización visual y multiclasificación lineal del conjunto de datos del iris

1. Introducción al conjunto de datos del iris

El conjunto de datos de flores de Iris es un conjunto de datos multidimensional clásico presentado por Sir Ronald Fisher, que se puede utilizar como muestra para el análisis discriminante.
El conjunto de datos contiene 50 muestras de cada una de las tres variedades de flores de Iris (Iris setosa, Iris virginica e Iris versicolor), cada uno También hay 4 parámetros característicos (respectivamente el largo y ancho de los sépalos y el largo y ancho de los pétalos, en centímetros)

Dos, regresión logística

1. La Regresión logística (Regresión logística) se utiliza para tratar el problema de regresión de la variable dependiente como variable categórica. El común es el problema de distribución binaria o binomial, y también puede manejar el problema de clasificación múltiple. Pertenece a un método de clasificación.
2. Uso del modelo de regresión LogisticRegression en Sklearn
Importar el modelo

from sklearn.linear_model import LogisticRegression  #导入逻辑回归模型 

entrenamiento en forma

clf = LogisticRegression()
print(clf)
clf.fit(train_feature,label)

predecir () predicción

predict['label'] = clf.predict(predict_feature)

Tres, clasificación múltiple lineal

Tome la longitud y el ancho de los sépalos como características para clasificar el
paquete de importación.

#导入相关包
import numpy as np
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import datasets
from sklearn import preprocessing
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

Obtener el conjunto de datos

# 获取所需数据集
iris=datasets.load_iris()
#每行的数据,一共四列,每一列映射为feature_names中对应的值
X=iris.data
print(X)
#每行数据对应的分类结果值(也就是每行数据的label值),取值为[0,1,2]
Y=iris.target
print(Y)

procesamiento de datos

#归一化处理
X = StandardScaler().fit_transform(X)
print(X)

Modelo de entrenamiento

lr = LogisticRegression()   # Logistic回归模型
lr.fit(X, Y)        # 根据数据[x,y],计算回归参数

Dibujar imágenes de clasificación

N, M = 500, 500     # 横纵各采样多少个值
x1_min, x1_max = X[:, 0].min(), X[:, 0].max()   # 第0列的范围
x2_min, x2_max = X[:, 1].min(), X[:, 1].max()   # 第1列的范围
t1 = np.linspace(x1_min, x1_max, N)
t2 = np.linspace(x2_min, x2_max, M)
x1, x2 = np.meshgrid(t1, t2)                    # 生成网格采样点
x_test = np.stack((x1.flat, x2.flat), axis=1)   # 测试点

cm_light = mpl.colors.ListedColormap(['#77E0A0', '#FF8080', '#A0A0FF'])
cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
y_hat = lr.predict(x_test)       # 预测值
y_hat = y_hat.reshape(x1.shape)                 # 使之与输入的形状相同
plt.pcolormesh(x1, x2, y_hat, cmap=cm_light)     # 预测值的显示
plt.scatter(X[:, 0], X[:, 1], c=Y.ravel(), edgecolors='k', s=50, cmap=cm_dark)    
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.xlim(x1_min, x1_max)
plt.ylim(x2_min, x2_max)
plt.grid()
plt.show()

Modelo predictivo

y_hat = lr.predict(X)
Y = Y.reshape(-1)
result = y_hat == Y
print(y_hat)
print(result)
acc = np.mean(result)
print('准确度: %.2f%%' % (100 * acc))

Tome la longitud y el ancho de los pétalos como características para clasificar de la
misma manera.

En conclusión:. . . . .

Supongo que te gusta

Origin blog.csdn.net/xianyudewo/article/details/115253072
Recomendado
Clasificación