Sklearn上机笔记--标准化

目录

一、标准化

1.导入boston数据集并转化为数据框

2.sklearn”三板斧“操作

3.岭回归

4.模型的保存及使用

5.对单个数据进行标准化

(1)数据展示

(2)对preprocessing数据进行标准化

(3)求均值

(4)对数据的某些列求标准化

6.在多个数据集上使用相同的标准化

7.标准化的一些相关命令

二、将特征变量缩放至特定范围

三、数据的正则化-求单位向量

 


一、标准化

1.导入boston数据集并转化为数据框

#导入boston数据库
from sklearn import datasets
boston = datasets.load_boston()
#转化为数据框
import pandas as pd
boston_df = pd.DataFrame(boston.data,columns = boston.feature_names)
boston_df.head(20)

结果:Sklearn上机笔记--标准化_第1张图片

 2.sklearn”三板斧“操作

实例化-->fit(训练)-->transforms or predict(转化/预测)

from sklearn.preprocessing import StandardScaler
std = StandardScaler(with_mean=False)#实例化
std.fit(boston.data)#训练
std.transform(boston.data)#转化或预测predict

结果:

Sklearn上机笔记--标准化_第2张图片

可以使用help()命令查询相关注释:

help(StandardScaler)#StandardScaler(*, copy=True, with_mean=True, with_std=True)

3.岭回归

from sklearn.linear_model import Ridge #岭回归
ridge = Ridge()
ridge.fit(boston.data,boston.target)
ridge.predict(boston.data)

 结果:

4.模型的保存及使用

#模型的保存
import joblib
joblib.dump(ridge,'C:/Users/Lenovo/A-数据挖掘课/ridge20220923.pkl')

结果:

#使用模型
import joblib
std2 = joblib.load("C:/Users/Lenovo/A-数据挖掘课/ridge20220923.pkl")
from sklearn.datasets import load_boston
boston=load_boston()
std2.predict(boston.data)

 结果:

5.对单个数据进行标准化

scale(X, *, axis=0, with_mean=True, with_std=True, copy=True) 

axis=0为对列进行计算  
with_mean=True:是否中心化数据(移除均值)
with_std=True:是否均一标准差(除以标准差)
copy=True:是否生成副本而不是替换原数

 (1)数据展示

boston_df.head()

结果:

Sklearn上机笔记--标准化_第3张图片

boston_df.describe()

 结果:

Sklearn上机笔记--标准化_第4张图片

 (2)对preprocessing数据进行标准化

from sklearn import preprocessing
boston_scaled = preprocessing.scale(boston_df)
boston_scaled#[-3,3]

结果:Sklearn上机笔记--标准化_第5张图片

(3)求均值

boston_scaled.mean(axis = 0)#均值

 结果:

 一些命令:

boston_scaled_rows = preprocessing.scale(boston_df,axis=1)
boston_scaled_rows.mean(axis=0)#对列求均值
boston_scaled_rows.mean(axis=1)#对行求均值
boston_scaled.std(axis = 0)#标准差

(4)对数据的某些列求标准化

boston_df.head()

结果:

Sklearn上机笔记--标准化_第6张图片

preprocessing.scale(boston_df[['CRIM','ZN']])

 结果:

Sklearn上机笔记--标准化_第7张图片

6.在多个数据集上使用相同的标准化

sklearn.preprocessing.StandardScaler(copy=True,with_mean=True,with_st =True 

copy = True:是否生成副本而不是替换原对象(但这种替换不一定能成功)
with_mean=True:该选项对稀疏矩阵无效

StandardScaler类的属性:
scale_:ndarray,shape(n_features,)
mean_:array of floats with shape
var_:array of floats with shape
n_samples_seen_:int 

#from sklearn import datasets
#from sklearn import preprocessing
#import pandas as pd
#boston = datasets.load_boston()
#boston_df = pdf.DataFrame(boston.data,columns = boston.feature_names)
std = preprocessing.StandardScaler()
std.fit(boston_df)
std.mean_,std.scale_
#fit之后求出了原始数据每列的均值和标准表

结果:

Sklearn上机笔记--标准化_第8张图片

7.标准化的一些相关命令

std.get_params()
#查看当前参数值
std.set_params(copy=False)
#设置参数值
std.scale_
#标准化之后的尺度
std.mean_#标准化后的期望

 二、将特征变量缩放至特定范围

sklearn.preprocessing.MinMaxScaler(feature_range=(0,1),copy=True)将数据缩放至特定的范围内
sklearn,preprocessing.MaxAbsScaler(copy = True)将数据的最大值缩放至1

scale = preprocessing.MinMaxScaler((1,10))
scale.fit_transform(boston_df)

 结果:

Sklearn上机笔记--标准化_第9张图片

scaler_1 = preprocessing.MaxAbsScaler()
scaler_1.fit_transform(boston_df)

 结果:

Sklearn上机笔记--标准化_第10张图片

三、数据的正则化-求单位向量

sklearn.preprocessing.normalize(x,axis=1,copy=True,norm='l2':'l1','l2',or 'max',用于正则化的具体范数,return_norm=False:是否返回所使用的范数)

import sklearn.preprocessing
x=[[-1,-1,2]]
x_normalized = preprocessing.normalize(x,norm='l2',return_norm = True)
x_normalized

 结果:

-1/2.44948974

 结果:

你可能感兴趣的:(SK-Learn学习笔记,sklearn,数据挖掘,python)