91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

該文件包含鳶尾花分類的Python源程序和數據集,數據集內包含 3 類鳶尾花,分別為山鳶尾(setosa)、變色鳶尾(versicolor)和維吉尼亞鳶尾(virginica)。每類各 50 個數據,每條記錄有 4 項特征:花萼長度、花萼寬度、花瓣長度、花瓣寬度。

資源截圖

代碼片段和文件信息

from?sklearn?import?svm
import?numpy?as?np
from?sklearn?import?model_selection
import?matplotlib.pyplot?as?plt
import?matplotlib?as?mpl
from?matplotlib?import?colors
#?#?當使用numpy中的loadtxt函數導入該數據集時,假設數據類型dtype為浮點型,但是很明顯數據集的第五列的數據類型是字符串并不是浮點型。
#?#?因此需要額外做一個工作,即通過loadtxt()函數中的converters參數將第五列通過轉換函數映射成浮點類型的數據。
#?#?首先,我們要寫出一個轉換函數:
#?#?定義一個函數,將不同類別標簽與數字相對應
def?iris_type(s):
????class_label={b‘setosa‘:0b‘versicolor‘:1b‘virginica‘:2}
????return?class_label[s]

def?train(model?x_train?y_train):
????model.fit(x_trainy_train.ravel())

def?show_accuracy(a?b?tip):
????acc?=?(a.ravel()?==?b.ravel())
????print(“%s?Accuracy:%.3f“%(tip?np.mean(acc)))

def?print_accuracy(model?x_train?y_trainx_test?y_test?):
????print(‘SVM-輸出訓練集的準確率為:‘?model.score(x_train?y_train))
????print(“SVM-輸出測試集的準確率為:“?model.score(x_test?y_test))
????#原始結果與預測結果進行對比
????show_accuracy(model.predict(x_train)?y_train?‘traing?data‘)
????show_accuracy(model.predict(x_test)?y_test?‘testing?data‘)
????#計算決策函數的值
????print(‘decision_function:\n‘?model.decision_function(x_train))

def?draw(model?x):
????x1_min?x1_max?=?x[:?0].min()?x[:?0].max()??#?第0列的范圍??x[:?0]?“:“表示所有行,0表示第1列
????x2_min?x2_max?=?x[:?1].min()?x[:?1].max()??#?第1列的范圍??x[:?0]?“:“表示所有行,1表示第2列
????x1?x2?=?np.mgrid[x1_min:x1_max:200j?x2_min:x2_max:200j]??#?生成網格采樣點(用meshgrid函數生成兩個網格矩陣X1和X2)
????grid_test?=?np.stack((x1.flat?x2.flat)?axis=1)??#?測試點,再通過stack()函數,axis=1,生成測試點
????#?.flat?將矩陣轉變成一維數組?(與ravel()的區別:flatten:返回的是拷貝

????grid_hat?=?model.predict(grid_test)??#?預測分類值
????grid_hat?=?grid_hat.reshape(x1.shape)??#?使之與輸入的形狀相同

????#?#?2.指定默認字體
????#?mpl.rcParams[‘font.sans-serif‘]?=?[u‘SimHei‘]
????#?mpl.rcParams[‘axes.unicode_minus‘]?=?False

????#?3.繪制
????cm_light?=?mpl.colors.ListedColormap([‘#A0FFA0‘?‘#FFA0A0‘?‘#A0A0FF‘])
????cm_dark?=?mpl.colors.ListedColormap([‘g‘?‘r‘?‘b‘])

????#?alpha?=?0.5
????plt.pcolormesh(x1?x2?grid_hat?cmap=cm_light)??#?預測值的顯示
????#?plt.plot(x[:?0]?x[:?1]?‘o‘?alpha=alpha?color=‘blue‘?markeredgecolor=‘k‘)
????plt.scatter(x[:?0]?x[:?1]?c=np.squeeze(y)?edgecolor=‘k‘?s=50?cmap?=?cm_dark?)??#?圈中測試集樣本
????plt.scatter(x_test[:?0]?x_test[:?1]?s=120?facecolors=‘none‘?zorder=10)??#?圈中測試集樣本
????plt.xlabel(‘sepal?length‘?fontsize=13)
????plt.ylabel(‘sepal?width‘?fontsize=13)
????plt.xlim(x1_min?x1_max)
????plt.ylim(x2_min?x2_max)
????plt.title(‘SVM?feature‘?fontsize=15)
????#?plt.grid()
????plt.show()

#1.數據準備
#1.1加載數據
#使用numpy中的loadtxt讀入數據文件
filepath=‘./iris.txt‘??#?數據文件路徑
#注意數據的讀取,delimiter參數是根據txt文件中的分隔符來設置的!
data=np.loadtxt(filepathdtype=floatdelimiter=Noneconverters={4:iris_type})

#1.2數據分割
X?y?=?np.split(data?(4)axis=1)??#?np.split?按照列(axis=1)進行分割,從第四列開始往后的作為y?數據,之前的作為X?數據。函數?split(數據,分割位置,軸=1(水平分割)?or?0(垂直分割))。
x?=?X[:0:2]??#?在?X中取前兩列作為特征(為了后期的可視化畫圖更加直觀,故只取前兩列特征值向量進行訓練)

x_trainx_testy_trainy_test=model_selection.train_test_split(xyrandom_state=1test_size=0.3)
#

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????408??2019-08-17?11:27??SVM鳶尾花分類Python實現\.idea\01-鳶尾花分類SVM.iml

?????文件????????138??2019-08-17?11:26??SVM鳶尾花分類Python實現\.idea\encodings.xml

?????文件????????294??2019-08-17?11:27??SVM鳶尾花分類Python實現\.idea\misc.xml

?????文件????????301??2019-08-17?11:26??SVM鳶尾花分類Python實現\.idea\modules.xml

?????文件???????9622??2019-08-17?18:26??SVM鳶尾花分類Python實現\.idea\workspace.xml

?????文件???????3808??2019-08-17?13:45??SVM鳶尾花分類Python實現\iris.txt

?????文件???????5920??2019-08-17?18:26??SVM鳶尾花分類Python實現\iris_svm.py

?????目錄??????????0??2019-08-17?18:27??SVM鳶尾花分類Python實現\.idea

?????目錄??????????0??2019-08-17?18:27??SVM鳶尾花分類Python實現

-----------?---------??----------?-----??----

????????????????20491????????????????????9


評論

共有 條評論