sklean案例步驟

2021-10-07 21:22:16 字數 4136 閱讀 5856

從資料中選擇乙個字段作為訓練和測試的答案

例如: text-to-html conversion tool

例如

wine.csv中的[『class』]

winequality.csv中的[『quality』]

從資料中選擇乙個字段作為訓練和測試的答案

wine = pd.read_csv(

'./資料/wine.csv'

)winequality = pd.read_csv(

'./資料/winequality.csv'

)#為wine劃分為資料和標準兩部分

wine_data = wine.iloc[:,

1:]#資料

wine_target = wine[

'class'

]#標準

#為winequalisty劃分為資料和標準兩部分

winequality_data = winequality.iloc[:,

:-1]

winequality_target = winequality[

'quality'

]

分別對_data和_target劃分訓練集和測試集

from sklearn.model_selection import train_test_split

#分成了4部分,分別是:wine_data的訓練集和測試集,wine_target的訓練集和測試集

wine_data_train,wine_data_test, wine_target_train,wine_target_test =

train_test_split(wine_data,wine_target,test_size =

0.2,random_state =22)

#分成了4部分,分別是:winequality_data的訓練集和測試集,winequality_target的訓練集和測試集

winequality_data_train,winequality_data_test, winequality_target_train,winequality_target_test =

train_test_split(winequality_data,winequality_target,test_size =

0.2,random_state =

22)

資料中各個資料差距過大,需要無量綱化,我們選擇使用standardscaler,具體實現內容如下:

#第一步,建立scaler物件,例項化

scaler1 = standardscaler(

)#第二步,設定訓練規則標準差標準化規則,本質上是生成均值和方差使用scaler.mean_、scaler.var_檢視

scaler1.fit(wine_data_train)

#第三步,資料標準化

"""應用規則在wine_data_train上得到wine_data_train_ss,此時它符合標準正態分佈,均值為0,方差為1

"""wine_data_train_ss = scaler.transform(wine_data_train)

注意:fit(data)和transform(data)的組合使用與fit_transform(data)等價

scaler1 = standardscaler(

)scaler1.fit(wine_data_train)

wine_data_train_ss = scaler1.transform(wine_data_train)

"""上下等價

"""scaler1 = standardscaler(

)wine_data_train_ss = scaler1.fit_transform(wine_data_train)

標準化後的資料維數(在資料表中維度指的是列數)可能過多,分析耗時效果不理想,因此我們應該找出比原來資料更少的特徵向量(特徵值即列字段)讓資料能夠被壓縮到少數特徵上並且資訊不損失太多。這就用到了pca降維打擊。

了解降維的作用後,對於如何從原資料的多個特徵值中選擇合適的特徵值就至關重要,對於pca演算法使用的資訊衡量指標是樣本的方差,又稱為可解釋性方差 explained_variance因為如果乙個特徵的整個列的方差很小,則說明改列中的資料很可能有大量的相似相同值,不具有有效資訊。反之方差越大,特徵量所帶資料越多

from sklearn.decomposition import pca

#********************==wine*************************

#n_components=6 引數的含義是降維後的列數

pca_model1 = pca(n_components=6)

.fit(wine_data_train_ss)

##擬合模型

wine_data_train_ss_pca = pca_model1.transform(wine_data_train_ss)

##將規則應用於資料集實現降維

wine_data_test_ss_pca = pca_model1.transform(wine_data_test_ss)

##將規則應用於測試集

#********************winequality********************=

pca_model2 = pca(n_components=6)

.fit(winequality_data_train_ss)

##擬合模型

winequality_data_train_ss_pca = pca_model2.transform(winequality_data_train_ss)

##將規則應用於資料集

winequality_data_test_ss_pca = pca_model2.transform(winequality_data_test_ss)

##將規則應用於測試集

pca物件**於上面wine中的pca_model12.檢視降維後每個新特徵向量所佔的資訊量佔原始資料總資訊量的百分比pca_model1.explained_variance_ratio_

3.檢視降維後總資訊量佔原始資料總資訊量的百分比pca_model1.explained_variance_ratio_.sum()

利用numpy中的累加函式計算在 n_components引數為何值時是選擇最少的特徵並且資料保留資訊量大,從影象中看出的效果就是在某點處影象開始平滑。

import numpy as np

import matplotlib.pyplot as plt

#括號不填寫引數,原資料不會降維,但根據pca演算法的特點,新特徵值已跟原來的不一樣

pca_model1 = pca(

).fit(wine_data_train_ss)

##生成規則

#檢視原資料的列數

n = wine_data_train_ss.shape[1]

plt.plot(

range(1

,n+1

),np.cumsum(pca_model1.explained_variance_ratio_)

)plt.xticks(

range(1

,n+1))

plt.show(

)

如圖所示,7附近開始平滑,所以引數n_components應=7

機器學習概述及sklean

模型訓練 資料對兩者準確度的影響 可解釋性 每乙個應用領域都必須了解其理論知識及商業模式及規則 監督學習 supervised learning 有特徵值和目標值 回歸 目標值資料型別 連續型 標註 無監督學習 unsupervised learning 只有特徵值 明確問題 根據資料型別建立模型的...

shell指令碼程式設計步驟與案例

二 硬體巡檢,對cpu 記憶體 磁碟超過閾值報警 1 需求分析 2 命令測試 3 指令碼程式設計 4 測試調優 bin bash 硬體巡檢,對cpu 記憶體 磁碟超過閾值報警 disk df th grep awk awk f mem expr free grep mem awk 100 free ...

Socket 簡單的控制台案例步驟

一 伺服器端 1.例項化並設定socket例項物件 a.建立ip位址和埠 b.繫結監聽位址 c.設定一下允許同時訪問數 2.監聽連線 a.通過啟動乙個新的執行緒執行,這樣主線程不會假死 啟動執行緒,所帶的引數必須是object型別 b.利用迴圈等待連線並返回乙個負責通訊的socket例項 c.返回的...