日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

by28777 by28777域名查詢( 九 )


前面使用X=[x[0] for x in DD]獲取第一列數(shù)據(jù),Y=[x[1] for x in DD]獲取第二列數(shù)據(jù),這里采用另一種方法 , iris.data[:, :2]獲取其中兩列數(shù)據(jù)或兩個特征,完整代碼如下:
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03import matplotlib.pyplot as pltimport numpy as npfrom sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegression#載入數(shù)據(jù)集iris = load_iris()X = X = iris.data[:, :2] #獲取花卉兩列數(shù)據(jù)集Y = iris.target#邏輯回歸模型lr = LogisticRegression(C=1e5)lr.fit(X,Y)#meshgrid函數(shù)生成兩個網(wǎng)格矩陣h = .02x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))#pcolormesh函數(shù)將xx,yy兩個網(wǎng)格矩陣和對應(yīng)的預(yù)測結(jié)果Z繪制在圖片上Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.figure(1, figsize=(8,6))plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)#繪制散點圖plt.scatter(X[:50,0], X[:50,1], color='red',marker='o', label='setosa')plt.scatter(X[50:100,0], X[50:100,1], color='blue', marker='x', label='versicolor')plt.scatter(X[100:,0], X[100:,1], color='green', marker='s', label='Virginica')plt.xlabel('Sepal length')plt.ylabel('Sepal width')plt.xlim(xx.min(), xx.max())plt.ylim(yy.min(), yy.max())plt.xticks(())plt.yticks(())plt.legend(loc=2)plt.show()
輸出如圖13所示 。經(jīng)過邏輯回歸后劃分為三個區(qū)域 , 左上角部分為紅色的圓點,對應(yīng)setosa鳶尾花;右上角部分為綠色方塊 , 對應(yīng)virginica鳶尾花;中間下部分為藍(lán)色星形,對應(yīng)versicolor鳶尾花 。散點圖為各數(shù)據(jù)點真實的花類型 , 劃分的三個區(qū)域為數(shù)據(jù)點預(yù)測的花類型,預(yù)測的分類結(jié)果與訓(xùn)練數(shù)據(jù)的真實結(jié)果結(jié)果基本一致 , 部分鳶尾花出現(xiàn)交叉 。

下面作者對導(dǎo)入數(shù)據(jù)集后的代碼進(jìn)行詳細(xì)講解 。
lr = LogisticRegression(C=1e5)初始化邏輯回歸模型,C=1e5表示目標(biāo)函數(shù) 。
lr.fit(X,Y)調(diào)用邏輯回歸模型進(jìn)行訓(xùn)練,參數(shù)X為數(shù)據(jù)特征,參數(shù)Y為數(shù)據(jù)類標(biāo) 。
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))獲取鳶尾花數(shù)據(jù)集的兩列數(shù)據(jù),對應(yīng)為花萼長度和花萼寬度,每個點的坐標(biāo)就是(x,y) 。先取X二維數(shù)組的第一列(長度)的最小值、最大值和步長h(設(shè)置為0.02)生成數(shù)組,再取X二維數(shù)組的第二列(寬度)的最小值、最大值和步長h生成數(shù)組, 最后用meshgrid函數(shù)生成兩個網(wǎng)格矩陣xx和yy , 如下所示:
[[ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ][ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ]...,[ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ][ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ]][[ 1.5 1.5 1.5 ..., 1.5 1.5 1.5 ][ 1.52 1.52 1.52 ..., 1.52 1.52 1.52]...,[ 4.88 4.88 4.88 ..., 4.88 4.88 4.88][ 4.9 4.9 4.9 ..., 4.9 4.9 4.9 ]]
Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])調(diào)用ravel()函數(shù)將xx和yy的兩個矩陣轉(zhuǎn)變成一維數(shù)組,由于兩個矩陣大小相等,因此兩個一維數(shù)組大小也相等 。np.c_[xx.ravel(), yy.ravel()]是獲取并合并成矩陣,即:
xx.ravel()[ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ]yy.ravel()[ 1.5 1.5 1.5 ..., 4.9 4.9 4.9]np.c_[xx.ravel(), yy.ravel()][[ 3.8 1.5 ][ 3.82 1.5 ][ 3.84 1.5 ]...,[ 8.36 4.9 ][ 8.38 4.9 ][ 8.4 4.9 ]]
總之,上述操作是把第一列花萼長度數(shù)據(jù)按h取等分作為行,并復(fù)制多行得到xx網(wǎng)格矩陣;再把第二列花萼寬度數(shù)據(jù)按h取等分作為列 , 并復(fù)制多列得到y(tǒng)y網(wǎng)格矩陣;最后將xx和yy矩陣都變成兩個一維數(shù)組,再調(diào)用np.c_[]函數(shù)將其組合成一個二維數(shù)組進(jìn)行預(yù)測 。

推薦閱讀