本文主要介紹scikit-learn中的資料預處理之歸一化。
import numpy as np
from sklearn import preprocessing
# 定義array
a = np.array([-10, 2.3, 13.7, 56, 108])
print a
# 對array進行歸一化(normalization)
# scale進行的操作是按列減去均值, 除以方差, 因此資料的均值為0, 方差為1
print preprocessing.scale(a)
[ -10.
2.313.7
56.108. ]
[-1.01951435 -0.73451375 -0.47036685
0.50975718
1.71463777]
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing
from sklearn.cross_validation import train_test_split
from sklearn.datasets.samples_generator import make_classification
from sklearn.svm import svc
# 生成資料集
x, y = make_classification(n_samples = 200, n_features = 2, n_redundant = 0, n_informative = 2,
random_state = 22, n_clusters_per_class = 1, scale = 100)
# 檢視資料分布
plt.scatter(x[:, 0], x[:, 1], c = y)
plt.show()
# 資料歸一化處理, 不進行處理時注釋掉
x = preprocessing.scale(x)
# 將資料分為訓練集和測試集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2)
# 構建分類器
svm = svc()
# 訓練分類器
svm.fit(x_train, y_train)
# 測試
print svm.score(x_test, y_test)
# 進行歸一化的準確率
0.9# 不進行歸一化的準確率
0.65
備註:由於資料是隨機生成的, 結果可能會不同,但進行歸一化與不進行歸一化的差異是一致的。
z-score標準化詳解介紹:
scikit learn 支援向量機實現手寫體識別
隨時 閱讀筆記 matplotlib inline import matplotlib.pyplot as plt import numpy as np from sklearn import datasets digits datasets.load digits 載入資料 把資料所代表的顯示出來...
決策樹演算法實現(scikit learn)
sk learn的決策樹文件 決策樹的演算法介紹 在 mac os x 中安裝與使用 graphviz 圖形視覺化工具 決策樹歸納演算法 id3 優先選擇資訊獲取量最大的屬性作為屬性判斷結點 資訊獲取量 information gain gain a info d infor a d age屬性資訊...
線性回歸 scikit learn
線性回歸即是我們希望能通過學習來得到乙個各屬性線性組合的函式,函式的各項係數表明了該屬性對於最後結果的重要性,可以用以下公式表達 y x 1 x1 2x2 pxp b線性回歸試圖讓各個點到回歸直線上的距離和最小,即最小化均方誤差。可用以下公式描述 min x y 22 matplotlib inli...