python数据集划分_机器学习和数据集介绍、数据集划分、特征抽取、归一化
機器學習介紹和數(shù)據(jù)集介紹
機器學習:
機器學習是一門多學科交叉專業(yè),涵蓋概率論知識,統(tǒng)計學知識,近似理論知識和復雜算法知識,使用計算機作為
工具并致力于真實實時的模擬人類學習方式,并將現(xiàn)有內(nèi)容進行知識結構劃分來有效提高學習效率。
很難明確的定義,簡單的來說,機器學習就是利用數(shù)學方法和計算機技術通過對歷史數(shù)據(jù)進行分析得到規(guī)律(模
型),并利用規(guī)律對未知數(shù)據(jù)進行預測。
數(shù)據(jù)集:
機器學習是從歷史數(shù)據(jù)獲得規(guī)律,那這些歷史數(shù)據(jù)是什么樣的呢?
可以獲取的數(shù)據(jù)集 :
scikit-learn數(shù)據(jù)量較小, 方便學習
kaggle大數(shù)據(jù)競賽平臺,80萬科學家, 真實數(shù)據(jù),數(shù)據(jù)量巨大
UCI收錄了360個數(shù)據(jù)集,覆蓋科學,生活,經(jīng)濟等領域,數(shù)據(jù)量幾十萬
常用的數(shù)據(jù)集結構組成 :特征值 + 目標值
# 注意 :?有些數(shù)據(jù)集可以沒有目標值 。每一行就是一個樣本。 每一列就是一個特征。 最后要預測的值就是目標。
scikit-learn
scikit-learn是基于Python語言的機器學習工具
簡單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具
可供大家在各種環(huán)境中重復使用
建立在Numpy , SciPy 和 matplotlib上
開源 , 可商業(yè)使用 -BSD許可證
Scikit-learn 數(shù)據(jù)集API介紹
1. sklearn.datasets1.1加載獲取流行數(shù)據(jù)集1.2 datasets.load_*() --獲取小規(guī)模數(shù)據(jù)集,數(shù)據(jù)包含在datasets里1.3 datasetss.fetch_*(data_home=None)
獲取大規(guī)模數(shù)據(jù)集,需要從網(wǎng)絡上下載,函數(shù)的第一個參數(shù)是data_home, 表示數(shù)據(jù)集。下載目錄,默認是-/scikit-learn_data/
2. load_* 和 fetch_*返回的數(shù)據(jù)類型是datasets.base.Bunch(字典格式)
data:特征數(shù)據(jù)數(shù)組,是[n_ samples*n_features]的二維numpy.ndarray數(shù)組
target:標簽數(shù)組,是n_samples的維numpy.ndarray數(shù)組
DESCR:數(shù)據(jù)描述
feature_names:特征名,新聞數(shù)據(jù),手寫數(shù)字,回歸數(shù)據(jù)集沒有
target_names;標簽名
#關于第二點, load_* 用于獲取小數(shù)據(jù)集 , fetch_* 用于獲取大數(shù)據(jù)集
scikit-learn 的使用 :
#導入方式
from sklearn.datasets import load_iris #load_iris 導入是鳶尾花的數(shù)據(jù)
#加載鳶尾花的數(shù)據(jù)
li =load_iris()print('獲取特征值',li.data) #鳶尾花的特征,官方早已分類好的,可供直接使用
print('目標值',li.target) #分了3個類
li.DESCR # 鳶尾花的描述li.feature_names # 鳶尾花的特征名 花長 花寬li.target_names # 鳶尾花的標簽名
#1 特征值 # 值太多,只復制一部分展示
獲取特征值
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]
[5.4 3.9 1.7 0.4]
[4.6 3.4 1.4 0.3]
[5. 3.4 1.5 0.2]
[4.4 2.9 1.4 0.2]
[4.9 3.1 1.5 0.1]
[5.4 3.7 1.5 0.2]
[4.8 3.4 1.6 0.2]
[4.8 3. 1.4 0.1]
[4.3 3. 1.1 0.1]
[5.8 4. 1.2 0.2]
[5.7 4.4 1.5 0.4]
[5.4 3.9 1.3 0.4]
[5.1 3.5 1.4 0.3]
[5.7 3.8 1.7 0.3]
[5.1 3.8 1.5 0.3]
[5.4 3.4 1.7 0.2]
[5.1 3.7 1.5 0.4]
[4.6 3.6 1. 0.2]
[5.1 3.3 1.7 0.5]
[4.8 3.4 1.9 0.2]
[5. 3. 1.6 0.2]
[5. 3.4 1.6 0.4]
[5.2 3.5 1.5 0.2]
[5.2 3.4 1.4 0.2]
[4.7 3.2 1.6 0.2]
[4.8 3.1 1.6 0.2]
[5.4 3.4 1.5 0.4]
[5.2 4.1 1.5 0.1]
[5.5 4.2 1.4 0.2]
[4.9 3.1 1.5 0.2]
[5. 3.2 1.2 0.2]
[5.5 3.5 1.3 0.2]
[4.9 3.6 1.4 0.1]
[4.4 3. 1.3 0.2]
[5.1 3.4 1.5 0.2]
[5. 3.5 1.3 0.3]
[4.5 2.3 1.3 0.3]
[4.4 3.2 1.3 0.2]
[5. 3.5 1.6 0.6]
[5.1 3.8 1.9 0.4]
[4.8 3. 1.4 0.3]
[5.1 3.8 1.6 0.2]
[4.6 3.2 1.4 0.2]
[5.3 3.7 1.5 0.2]#2 目標值
目標值
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]#3 描述
'.. _iris_dataset:\n\nIris plants dataset\n--------------------\n\n**Data Set Characteristics:**\n\n :Number of Instances: 150 (50 in each of three classes)\n :Number of Attributes: 4 numeric, predictive attributes and the class\n :Attribute Information:\n - sepal length in cm\n - sepal width in cm\n - petal length in cm\n - petal width in cm\n - class:\n - Iris-Setosa\n - Iris-Versicolour\n - Iris-Virginica\n \n :Summary Statistics:\n\n ============== ==== ==== ======= ===== ====================\n Min Max Mean SD Class Correlation\n ============== ==== ==== ======= ===== ====================\n sepal length: 4.3 7.9 5.84 0.83 0.7826\n sepal width: 2.0 4.4 3.05 0.43 -0.4194\n petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)\n petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)\n ============== ==== ==== ======= ===== ====================\n\n :Missing Attribute Values: None\n :Class Distribution: 33.3% for each of 3 classes.\n :Creator: R.A. Fisher\n :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n :Date: July, 1988\n\nThe famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\nfrom Fisher\'s paper. Note that it\'s the same as in R, but not as in the UCI\nMachine Learning Repository, which has two wrong data points.\n\nThis is perhaps the best known database to be found in the\npattern recognition literature. Fisher\'s paper is a classic in the field and\nis referenced frequently to this day. (See Duda & Hart, for example.) The\ndata set contains 3 classes of 50 instances each, where each class refers to a\ntype of iris plant. One class is linearly separable from the other 2; the\nlatter are NOT linearly separable from each other.\n\n.. topic:: References\n\n - Fisher, R.A. "The use of multiple measurements in taxonomic problems"\n Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to\n Mathematical Statistics" (John Wiley, NY, 1950).\n - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.\n - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System\n Structure and Classification Rule for Recognition in Partially Exposed\n Environments". IEEE Transactions on Pattern Analysis and Machine\n Intelligence, Vol. PAMI-2, No. 1, 67-71.\n - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule". IEEE Transactions\n on Information Theory, May 1972, 431-433.\n - See also: 1988 MLC Proceedings, 54-64. Cheeseman et al"s AUTOCLASS II\n conceptual clustering system finds 3 classes in the data.\n - Many, many more ...'
#4 特征名
['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']#5 標簽名
array(['setosa', 'versicolor', 'virginica'], dtype='
上代碼運行結果,copy過來的
👆? 這是用于分類的小數(shù)據(jù)集 , 👇用于分類的大數(shù)據(jù)集
1. sklearn.datasets.fetch_20newsgroups(data_home=None,subset='train'
1.1 subset:'train'或者'test','all',可選,選擇要加載的數(shù)據(jù)集 --train:訓練集,test:測試集,all:兩者全部1.2 datasets.clear_data_home(data_home=None) --清除目錄下的數(shù)據(jù)#代碼案例
from sklearn.datasets importfetch_20newsgroups
news= fetch_20newsgroups(subset='all')
用于回歸的數(shù)據(jù)集 :
1. sklearn.datasets.load_boston() --加載并返回波士頓房價數(shù)據(jù)集2. sklearn.datasets.load_diabetes() --加載和返回糖尿病數(shù)據(jù)集#代碼案例
from sklearn.datasets importload_boston
lb=load_boston()print('特征值', lb.data) #目標值是連續(xù)的 回歸問題的特性 print('目標值', lb.target)
數(shù)據(jù)集劃分
數(shù)據(jù)集會劃分成兩部分:訓練集和測試集。
訓練集用來訓練,構建模型,測試集用來評估預測結果。
比例一般為75%的數(shù)據(jù)為訓練集,25%的數(shù)據(jù)為測試集。
API :
sklearn.model_selection.train_test_split
from sklearn.model_selection import train_test_split
# x_train ,x_test ,y_train , y_test = train_test_split(x,y,test_size=0.*)
# x : 數(shù)據(jù)集的特征值
# y : 數(shù)據(jù)集的目標值
# test_size : 測試集的大小,一般為float
# radom_state : 隨機數(shù)種子,不同的種子會造成不同的隨機采樣結果.相同的種子采樣結果相同
# return -- 方法返回4個結果: 訓練集特征值, 測試集特征值, 訓練集目標值, 測試值目標值(默認隨機取值)
x_train ,x_test , y_train , y_test = train_test_split(li.data,li.target,test_size=0.25) #傳入的值 1. 特征值 2. 目標值 3. 測試集的大小 # 接收為固定寫法
# 👆? 以鳶尾花的數(shù)據(jù)為例 , 寫了訓練集。這個是訓練方法? 。
x_train.shape #訓練集大小 112條 為原數(shù)據(jù)集的75%
li.data.shape #原數(shù)據(jù)集大小 150條
特征抽取
特征工程 :
特征工程是將原始數(shù)據(jù)轉換為更好地代表預測模型的潛在問題的特征的過程,從而提高了對未知數(shù)據(jù)的 預測準確性.
特征抽取 :
對文本等數(shù)據(jù)進行特征值化, 讓計算機更好的理解數(shù)據(jù).
對字典特征抽取 :
對字典數(shù)據(jù)進行特征值化. 主要是對類別特征進行One-hot編碼.
API 接口 : 字典 Dict
sklearn.feature_extraction.DictVectorizer1. DictVectorizer.fit_transform(X)
x:字典或者包含字典的迭代器
返回值:返回sparse矩陣(稀疏矩陣)2.DictVectorizer.inverse_transform(X)
x:array數(shù)組或者sparse矩陣
返回值:轉換之前數(shù)據(jù)格式3. DictVectorizer.get_feature_names()
返回特征名稱4. DictVectorizer.transform(x)
按照原先的標準轉換
流程 :
實例化類DictVerctorizer
調(diào)用fit_transform方法輸入數(shù)據(jù)并轉換
案例 :案例 :案例 :案例 :
#導入接口
from sklearn.feature_extraction importDictVectorizer#數(shù)據(jù)
data = [{'name':'漢唐店','Satisfaction':3.5},
{'name':'花溪店','Satisfaction':2.5},
{'name':'溫泉店','Satisfaction':3}]#實例化
dv =DictVectorizer()#調(diào)用轉換接口
res =dv.fit_transform(data)print(res.toarray()) #轉換成數(shù)組 看起來更清晰#結果注解👇 : 第一個特征值 是3.5 所以第1個 是1 ,二個是2.5≠3.5 所以是0 ,第三個值是3 ≠3.5 ,所以是0 ;第二,第三列類似第一種
dv.get_feature_names() #特征名稱
文本特征的抽取text.CountVectorizer
API接口 文本 Text
sklearn.feature_extraction.text.CountVectorizer1. CountVectorizer.fit_transform(X)
x:文本或者包含文本字符串的可迭代對象
返回值:返回sparse矩陣(稀疏矩陣)2. CountVectorizer.inverse_transform(X)
x:array數(shù)組或者sparse矩陣
返回值:轉換之前數(shù)據(jù)格式3.CountVectorizer.get_feature_names()
返回單詞列表 CountVectorizer.transform(x)
按照原先的標準轉換
流程
實例化 CountVectorizer
調(diào)用 fit_transform 方法輸入數(shù)據(jù)并轉換
案例:案例:案例:案例:
#上面是英文的特征抽取 ,那么中文是否一樣,該如何操作?
from sklearn.feature_extraction.text importCountVectorizerimport jieba # 中文分詞工具庫
cv = CountVectorizer()
data = ['''君不見,黃河之水天上來,奔流到海不復回。
君不見,高堂明鏡悲白發(fā),朝如青絲暮成雪。
人生得意須盡歡,莫使金樽空對月。
天生我材必有用,千金散盡還復來。
烹羊宰牛且為樂,會須一飲三百杯。
岑夫子,丹丘生,將進酒,杯莫停。
與君歌一曲,請君為我傾耳聽。
鐘鼓饌玉不足貴,但愿長醉不復醒。
古來圣賢皆寂寞,惟有飲者留其名。
陳王昔時宴平樂,斗酒十千恣歡謔。
主人何為言少錢,徑須沽取對君酌。
五花馬,千金裘,呼兒將出換美酒,與爾同銷萬古愁。''','''唧唧復唧唧,木蘭當戶織。不聞機杼聲,惟聞女嘆息。
問女何所思,問女何所憶。女亦無所思,女亦無所憶。昨夜見軍帖,可汗大點兵,軍書十二卷,卷卷有爺名。阿爺無大兒,木蘭無長兄,愿為市鞍馬,從此替爺征。
東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭。旦辭爺娘去,暮宿黃河邊,不聞爺娘喚女聲,但聞黃河流水鳴濺濺。旦辭黃河去,暮至黑山頭,不聞爺娘喚女聲,但聞燕山胡騎鳴啾啾。
萬里赴戎機,關山度若飛。朔氣傳金柝,寒光照鐵衣。將軍百戰(zhàn)死,壯士十年歸。
歸來見天子,天子坐明堂。策勛十二轉,賞賜百千強。可汗問所欲,木蘭不用尚書郎,愿馳千里足,送兒還故鄉(xiāng)。''']
數(shù)據(jù)--data
#對中文進行處理
data = [' '.join(jieba.cut(x)) for x indata] # 中文分詞,并在分詞后方加入空格
res= cv.fit_transform(data) #中文需要分詞 fit_transform 默認用空格分詞
cv.get_feature_names() #獲取特征值
res.toarray() # 轉化特征值相比在N章(以上是2個str)中出現(xiàn)的次數(shù)
在上述的文本抽取中,我們是依據(jù)各個分詞出現(xiàn)的頻率進行分類的,但是這會出現(xiàn)一個問題,因為有些詞,會出現(xiàn)在所有的文本中且占比高,這樣就不利于我們將提取出獨有的文本特征,即提煉出各個文本的關鍵詞。
原理 :
tf:term frequency 詞頻
idf:inverse document frequency 逆文檔頻率 log(中文檔數(shù)量/該詞出現(xiàn)的文檔數(shù)量) log1=0
tf*idf =詞的重要性程度
TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現(xiàn)的概率高,并且在其他文章中很少出現(xiàn),則 認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類。
TF-IDF作用:用以評估一個詞對于一個文章集或一個語料庫中的其中一份的重要程度
API 接口 關鍵字的重要程度
sklearn.feature_extraction.text.TfidVectorizer
返回詞的權重矩陣
TfidVectorizer.fit_transform(X)
x:文本或者包含文本字符串的可迭代對象
返回值:返回sparse矩陣(稀疏矩陣)
TfidVectorizer.inverse_transform(X)
x:array數(shù)組或者sparse矩陣
返回值:轉換之前數(shù)據(jù)格式
TfidVectorizer.get_feature_names()
返回單詞列表
TfidVectorizer.transform(x)
按照原先的標準轉換
流程
實例化 TfidVectorizer
調(diào)用 fit_transform 方法輸入數(shù)據(jù)并轉換
案例:案例:案例:案例:
#導入接口
from sklearn.feature_extraction.text importTfidfVectorizer#實例化
tf = TfidfVectorizer()
data1 = ['''君不見,黃河之水天上來,奔流到海不復回。
君不見,高堂明鏡悲白發(fā),朝如青絲暮成雪。
人生得意須盡歡,莫使金樽空對月。
天生我材必有用,千金散盡還復來。
烹羊宰牛且為樂,會須一飲三百杯。
岑夫子,丹丘生,將進酒,杯莫停。
與君歌一曲,請君為我傾耳聽。
鐘鼓饌玉不足貴,但愿長醉不復醒。
古來圣賢皆寂寞,惟有飲者留其名。
陳王昔時宴平樂,斗酒十千恣歡謔。
主人何為言少錢,徑須沽取對君酌。
五花馬,千金裘,呼兒將出換美酒,與爾同銷萬古愁。''','''唧唧復唧唧,木蘭當戶織。不聞機杼聲,惟聞女嘆息。
問女何所思,問女何所憶。女亦無所思,女亦無所憶。昨夜見軍帖,可汗大點兵,軍書十二卷,卷卷有爺名。阿爺無大兒,木蘭無長兄,愿為市鞍馬,從此替爺征。
東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭。旦辭爺娘去,暮宿黃河邊,不聞爺娘喚女聲,但聞黃河流水鳴濺濺。旦辭黃河去,暮至黑山頭,不聞爺娘喚女聲,但聞燕山胡騎鳴啾啾。
萬里赴戎機,關山度若飛。朔氣傳金柝,寒光照鐵衣。將軍百戰(zhàn)死,壯士十年歸。
歸來見天子,天子坐明堂。策勛十二轉,賞賜百千強。可汗問所欲,木蘭不用尚書郎,愿馳千里足,送兒還故鄉(xiāng)。''']
文本數(shù)據(jù)-data1
# 特征抽取 #
data1 = [' '.join(jieba.cut(x)) for x in data1] #文本數(shù)據(jù)
res = tf.fit_transform(data1) #輸入數(shù)據(jù)并轉換
print(tf.get_feature_names()) #特征值
print(res.toarray()) # 很多
['一曲', '一飲', '萬古愁', '萬里', '三百杯', '不復醒', '不用', '不足', '不聞', '與爾同銷', '東市', '丹丘', '為樂', '主人', '之水', '五花馬', '人生', '從此', '會須', '傳金', '但愿', '但聞', '何為', '傾耳', '關山', '軍帖', '出換', '北市', '十二', '十二卷', '十千', '十年', '千里', '千金', '南市', '卷卷', '古來', '可汗', '嘆息', '君不見', '君歌', '君酌', '呼兒', '唧唧', '圣賢', '壯士', '復來', '大點', '天上', '天子', '天生我材必有用', '夫子', '奔流', '女亦無所憶', '女聲', '宰牛', '寂寞', '寒光', '將軍', '將進酒', '尚書郎', '平樂', '度若飛', '歸來', '當戶織', '徑須', '得意', '恣歡', '惟有', '惟聞', '愿為', '愿馳', '戎機', '戰(zhàn)死', '所憶', '所思', '所欲', '故鄉(xiāng)', '散盡', '斗酒', '無大兒', '旦辭', '明堂', '明鏡', '昔時', '昨夜', '暮宿', '暮成', '暮至', '替爺征', '朔氣', '朝如', '木蘭', '機杼', '杯莫停', '流水', '海不復', '烹羊', '燕山', '爺名', '爺娘', '留其名', '白發(fā)', '百千', '策勛', '美酒', '胡騎鳴', '莫使', '西市', '言少', '請君', '賞賜', '轡頭', '送兒', '金樽空', '鐘鼓饌玉', '鐵衣', '長兄', '長醉', '長鞭', '問女何', '阿爺', '陳王', '青絲', '鞍韉', '鞍馬', '須盡歡', '飲者', '駿馬', '高堂', '鳴濺', '黃河', '黑山頭']
[[0.12081891 0.12081891 0.12081891 0. 0.12081891 0.120818910.0.12081891 0. 0.12081891 0. 0.12081891
0.12081891 0.12081891 0.12081891 0.12081891 0.120818910.0.12081891 0. 0.12081891 0. 0.12081891 0.120818910. 0.0.120818910. 0. 0.0.12081891 0. 0. 0.241637820. 0.0.12081891 0. 0. 0.24163782 0.12081891 0.12081891
0.12081891 0. 0.12081891 0. 0.120818910.0.12081891 0. 0.12081891 0.12081891 0.120818910.
0.0.12081891 0.12081891 0. 0. 0.120818910.0.12081891 0. 0. 0. 0.12081891
0.12081891 0.12081891 0.120818910. 0. 0.
0. 0. 0. 0. 0. 0.0.12081891 0.12081891 0. 0. 0. 0.12081891
0.12081891 0. 0. 0.120818910. 0.
0.0.12081891 0. 0. 0.120818910.0.12081891 0.12081891 0. 0. 0. 0.12081891
0.12081891 0. 0. 0.12081891 0. 0.120818910.0.12081891 0.120818910. 0. 0.0.12081891 0.12081891 0. 0. 0.120818910.
0. 0.0.12081891 0.120818910. 0.0.12081891 0.12081891 0. 0.12081891 0. 0.085963650. ]
[0. 0. 0.0.090330070. 0.0.09033007 0. 0.27099022 0. 0.090330070.
0. 0. 0. 0. 0.0.090330070.0.09033007 0. 0.180660150. 0.0.09033007 0.09033007 0. 0.09033007 0.09033007 0.090330070.0.09033007 0.09033007 0. 0.09033007 0.090330070.0.18066015 0.090330070. 0. 0.
0.0.18066015 0. 0.09033007 0. 0.090330070.0.18066015 0. 0. 0. 0.09033007
0.18066015 0. 0. 0.09033007 0.090330070.0.09033007 0. 0.09033007 0.09033007 0.090330070.
0. 0. 0.0.09033007 0.09033007 0.09033007
0.09033007 0.09033007 0.09033007 0.18066015 0.09033007 0.090330070. 0.0.09033007 0.18066015 0.090330070.
0.0.09033007 0.09033007 0. 0.09033007 0.09033007
0.09033007 0. 0.27099022 0.09033007 0. 0.090330070. 0.0.09033007 0.09033007 0.270990220.
0.0.09033007 0.09033007 0. 0.090330070.0.09033007 0. 0. 0.09033007 0.09033007 0.090330070. 0.0.09033007 0.09033007 0. 0.09033007
0.18066015 0.09033007 0. 0. 0.09033007 0.090330070. 0.0.09033007 0. 0.09033007 0.19281177
0.09033007]]
運行結果
# 以上就是對特征值得抽取,部分注意事項等 #
歸一化
特征預處理 :
通過特定的統(tǒng)計方法(數(shù)學方法)將數(shù)據(jù)轉換成算法要求的數(shù)據(jù)
數(shù)值類型標準數(shù)據(jù)縮放 :
歸一化
標準化
類別型數(shù)據(jù) : one-hot編碼
時間類型 : 時間的切分
sklearn 特征處理API 👉 sklearn.preprocessing
類:
sklearn.prepocessing.MinMaxScaler
MinMaxScaler(feature_range=(0,1)...)
每個特征縮放到給定范圍(默認[0,1])
MinMaxScalar.fit_transform(x)
x:numpy array格式的數(shù)據(jù)(n_samples,n_features)
返回值:轉換后的形狀相同的array
步驟
實例化 MinMaxScalar
通過 fit_transform 轉換
#特征預處理--數(shù)據(jù)
data = np.array([[5000,2,10,40],[6000,3,15,45],[50000,5,15,40]])#--------------------#
array([[ 5000, 2, 10, 40],
[6000, 3, 15, 45],
[50000, 5, 15, 40]])
👆 有時候,你可能會注意到某些特征比其他特征擁有高得多的跨度值。舉個例子,將一個人的 收入和他的 年齡進行比較,通過縮放可以避免某些特征比其他特征獲得大小非常懸殊的權重值。即使得某一個特征 不會對結果造成過大的影響.
歸一化 :
特點:通過對原始數(shù)據(jù)進行變換吧數(shù)據(jù)映射到(默認為[0,1])之間
#導入接口
from sklearn.preprocessing importMinMaxScaler#實例化
mm =MinMaxScaler() #默認0-1之間#對數(shù)據(jù)進行轉換-歸一化
res = mm.fit_transform(data)
res
還可以指定范圍縮減 :
mm = MinMaxScaler(feature_range=(0,3))
res=mm.fit_transform(data)
res
👆 缺點?👆?在特定的場景下大值小值是變化的,另外,大值與小值非常容易受異常點的影響,所以這種方 法的魯棒性(穩(wěn)定性)較差,只適合傳統(tǒng)精確小數(shù)據(jù)場景。所以一般不會使用,廣泛使用的是標準化。。。。。。
總結
以上是生活随笔為你收集整理的python数据集划分_机器学习和数据集介绍、数据集划分、特征抽取、归一化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索不到投屏设备怎么办_【蜜蜂市场科普】
- 下一篇: 前端form表单上传图片等信息,pyth