アイリスデータセットの線形複数分類、視覚的表示、およびテスト精度実験

1.アイリスデータセットの概要

アイリス花データセットは、ロナルドフィッシャー卿によって導入された古典的な多次元データセットであり、判別分析のサンプルとして使用できます。
データセットには、3種類のアイリス花(Iris setosa、Iris)のそれぞれの50サンプルが含まれていますvirginicaとIrisversicolor)、それぞれ4つの特徴的なパラメーターもあります(それぞれ、セパルの長さと幅、および花びらの長さと幅(センチメートル単位))

2、ロジスティック回帰

1.ロジスティック回帰(ロジスティック回帰)は、従属変数の回帰問題をカテゴリ変数として処理するために使用されます。一般的な問題は、バイナリまたは二項分布の問題であり、複数分類の問題も処理できます。分類方法。
2.SklearnでのLogisticRegression回帰モデルの使用モデルの
インポート

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

fit()トレーニング

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

予測()予測

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

3つの線形多重分類

がく片の長さと幅を、
インポートパッケージを分類するための機能として使用します

#导入相关包
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

データセットを取得する

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

情報処理

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

トレーニングモデル

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

分類画像を描く

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()

予測モデル

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))

花びらの長さと幅を特徴として、
同じように分類します

結論として:。

おすすめ

転載: blog.csdn.net/xianyudewo/article/details/115253072