標準化(Normalization)和歸一化實現

概念:

原因:
由于進行分類器或模型的建立與訓練時,輸入的數據范圍可能比較大,同時樣本中各數據可 能量綱不一致,這樣的數據容易對模型訓練或分類器的構建結果產生影響,因此需要對其進行標準 化處理,去除數據的單位限制,將其轉化為無量綱的純數值,便于不同單位或量級的指標能夠進行 比較和加權。

其中最典型的就是數據的歸一化處理,即將數據統一映射到[0,1]區間上。

z-score標準化(零均值歸一化zero-mean normalization):
? 經過處理后的數據均值為0,標準差為1(正態分布)
? 其中μ是樣本的均值, σ是樣本的標準差

代碼實現

import numpy as np
import matplotlib.pyplot as plt
#歸一化的兩種方式
def Normalization1(x):'''歸一化(0~1)''''''x_=(x?x_min)/(x_max?x_min)'''return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]
def Normalization2(x):'''歸一化(-1~1)''''''x_=(x?x_mean)/(x_max?x_min)'''return [(float(i)-np.mean(x))/(max(x)-min(x)) for i in x]
#標準化
def z_score(x):'''x?=(x?μ)/σ'''x_mean=np.mean(x)s2=sum([(i-np.mean(x))*(i-np.mean(x)) for i in x])/len(x)return [(i-x_mean)/s2 for i in x]l=[-10, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 30]
l1=[]
# for i in l:
#     i+=2
#     l1.append(i)
# print(l1)
cs=[]
for i in l:c=l.count(i)cs.append(c)
print(cs)
n=Normalization2(l)
z=z_score(l)
print(n)
print(z)
'''
藍線為原始數據,橙線為z
'''
plt.plot(l,cs)
plt.plot(z,cs)
plt.show()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389505.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Toast源碼深度分析

目錄介紹 1.最簡單的創建方法 1.1 Toast構造方法1.2 最簡單的創建1.3 簡單改造避免重復創建1.4 為何會出現內存泄漏1.5 吐司是系統級別的 2.源碼分析 2.1 Toast(Context context)構造方法源碼分析2.2 show()方法源碼分析2.3 mParams.token windowToken是干什么用的2.4 schedul…

序列化框架MJExtension詳解 + iOS ORM框架

當開發中你的模型中屬性名稱和 字典(JSON/XML) 中的key 不能一一對應時, 或者當字典中嵌套了多層字典數組時..., 以及教你如何用 MJExtension 配置類來統一管理你的模型配置, 下面羅列了開發中常見的一些特殊情況, 請參考!(MJExtension/github) 最基本用法: // 將字典轉為模型 …

運行keras出現 FutureWarning: Passing (type, 1) or ‘1type‘ as a synonym of type is deprecated解決辦法

運行keras出現 FutureWarning: Passing (type, 1) or ‘1type’ as a synonym of type is deprecated; in a future version of numpy, 原則來說,沒啥影響,還是能運行,但是看著難受 解決辦法: 點擊藍色的鏈接: 進入 …

RedirectToAction()轉移方式及參數傳遞

今天在做一個功能的時,使用RedirectToAction()需要從這里傳幾個參數,從網上查了一下,這樣解決。真好。 Return RedirectToAction("Index","ManageInfo",new{type0,page1});轉載于:https://www.cnblogs.com/ZaraNet/p/978…

軟件項目風險管理

近幾年來軟件開發技術、工具都有了很大的進步,但是軟件項目開發超時、超支、甚至不能滿足用戶需求而根本沒有得到實際使用的情況仍然比比皆是。軟件項目開發和管理中一直存在著種種不確定性,嚴重影響著項目的順利完成和提交。但這些軟件風險并未得到充分…

mongdb 群集_群集文檔的文本摘要

mongdb 群集This is a part 2 of the series analyzing healthcare chart notes using Natural Language Processing (NLP)這是使用自然語言處理(NLP)分析醫療保健圖表筆記的系列文章的第2部分。 In the first part, we talked about cleaning the text and extracting sectio…

keras框架實現手寫數字識別

詳細細節可學習從零開始神經網絡:keras框架實現數字圖像識別詳解! 代碼實現: [1]將訓練數據和檢測數據加載到內存中(第一次運行需要下載數據,會比較慢): (mnist是手寫數據集) train_images是用于訓練系統…

gdal進行遙感影像讀寫_如何使用遙感影像進行礦物勘探

gdal進行遙感影像讀寫Meet Jose Manuel Lattus, a geologist from Chile. In the latest Soar Cast, he discusses his work in mineral exploration and environmental studies, and explains how he makes a living by creating valuable information products based on diff…

從零開始神經網絡:keras框架實現數字圖像識別詳解!

接口實現可參考:keras框架實現手寫數字識別 思路: 我們的代碼要導出三個接口,分別完成以下功能: 初始化initialisation,設置輸入層,中間層,和輸出層的節點數。訓練train:根據訓練數據不斷的更…

大數據學習第一貼

搞了這么久的開發,一直沒有養成發博客的習慣,今天開始對大數據所需內容進行總結性記錄,并對以后遇到的問題形成一個自己的知識庫。就這些!轉載于:https://blog.51cto.com/13921538/2299765

推薦算法的先驗算法的連接_數據挖掘專注于先驗算法

推薦算法的先驗算法的連接So here we are diving into the world of data mining this time, let’s begin with a small but informative definition;因此,這一次我們將進入數據挖掘的世界,讓我們從一個小的但內容豐富的定義開始; 什么是數…

Android 頁面多狀態布局管理

一、現狀 頁面多狀態布局是開發中常見的需求,即頁面在不同狀態需要顯示不同的布局,實現的方式也比較多,最簡單粗暴的方式就是在 XML 中先將不同狀態對應的布局隱藏起來,根據需要改變其可見狀態,如果多個界面公用相同的…

Tensorflow入門神經網絡代碼框架

Tensorflow—基本用法 使用圖 (graph) 來表示計算任務.在被稱之為 會話 (Session) 的上下文 (context) 中執行圖.使用 tensor 表示數據.通過 變量 (Variable) 維護狀態.使用 feed 和 fetch 可以為任意的操作(arbitrary operation)賦值或者從其中獲取數據。 ? TensorFlow 是一…

手把手教你把代碼丟入github 中

手把手教你把代碼丟入github 中 作為一個小運維一步步教你們怎么把代碼放入到github 中 首先呢我們下載一個git的客戶端 https://git-scm.com/downloads/ 下載一個最新版的2.16.2 下載后那就安裝吧。如果看不懂英文就選擇默認安裝的方式吧。但是你得記住你的軟件安裝的位置 小…

時間序列模式識別_空氣質量傳感器數據的時間序列模式識別

時間序列模式識別 1. Introduction 2. Exploratory Data Analysis ° 2.1 Pattern Changes ° 2.2 Correlation Between Features 3. Anomaly Detection and Pattern Recognition ° 3.1 Point Anomaly Detection (System Fault) ° 3.2 Collective Anomaly Detection (Externa…

oracle 性能優化 07_診斷事件

2019獨角獸企業重金招聘Python工程師標準>>> 一、診斷事件 診斷事件無官方技術文檔支持,使用存在風險,慎用。使用診斷事件可以獲取問題更多的信息,調整系統運行 特性,啟用某些內部功能。用于系統故障的診斷。跟蹤應…

Tensorflow框架:卷積神經網絡實戰--Cifar訓練集

Cifar-10數據集包含10類共60000張32*32的彩色圖片,每類6000張圖。包括50000張訓練圖片和 10000張測試圖片 代碼分為數據處理部分和卷積網絡訓練部分: 數據處理部分: #該文件負責讀取Cifar-10數據并對其進行數據增強預處理 import os impo…

計算機科學速成課36:自然語言處理

詞性 短語結構規則 分析樹 語音識別 譜圖 快速傅里葉變換 音素 語音合成 轉載于:https://www.cnblogs.com/davidliu2018/p/9149252.html

linux內存初始化初期內存分配器——memblock

2019獨角獸企業重金招聘Python工程師標準>>> 1.1.1 memblock 系統初始化的時候buddy系統,slab分配器等并沒有被初始化好,當需要執行一些內存管理、內存分配的任務,就引入了一種內存管理器bootmem分配器。 當buddy系統和slab分配器初始化好后&…

數據科學學習心得_學習數據科學

數據科學學習心得蘋果 | GOOGLE | 現貨 | 其他 (APPLE | GOOGLE | SPOTIFY | OTHERS) Editor’s note: The Towards Data Science podcast’s “Climbing the Data Science Ladder” series is hosted by Jeremie Harris. Jeremie helps run a data science mentorship startup…