标准化数据【离差标准化数据、标准差标准化数据、小数定标标准化数据】
离差标准化数据:
数据的整体分布情况并不会随离差标准化而发生改变,原先取值较大的数据,在做完离差标准化后的值依旧较大;
对原始数据的一种线性变换,结果是将原始数据的数值映射到[0,1]区间之间。
实操:
import pandas as pddata =pd.read_csv('./609/detail.csv',encoding='gbk')data.head()
def MinMaxScale(data):return (data-data.min())/(data.max()-data.min())MinMaxScale(data['counts'])#做完离差标准化后的数据
a = MinMaxScale(data['counts'])#做完离差标准化后的数据b = MinMaxScale(data['amounts'])#对单价离差标准化后的数据pd.concat([a,b],axis=1)#对做完俩离差标准化的数据合并一下
标准差标准化数据:
也叫零均值标准化或分数标准化,是当前使用最广泛的数据标准化方法。经过该方法处理的数据均值为0,标准差为1。
实操:
def StandScale(data):return (data-data.mean())/data.std()a = StandScale(data['counts'])#做完标准差标准化后的数据b = StandScale(data['amounts'])#对单价标准差标准化后的数据pd.concat([a,b],axis=1)#对做完俩标准差标准化的数据合并一下
小数定标标准化数据:
通过移动数据的小数位数,将数据映射到区间[-1,1]之间。
实操:
import numpy as npdef DecimalScale(data):return data/10**(np.ceil(np.log10(data.abs().max())))#ceil取整a = DecimalScale(data['counts'])#做完标准差标准化后的数据b = DecimalScale(data['amounts'])#对单价标准差标准化后的数据pd.concat([a,b],axis=1)#对做完俩标准差标准化的数据合并一下
使用sklearn构建模型【scikit-learn】:
加载datasets模块中数据集
sklearn库的datasets模块集成了部分数据分析的经典数据集,可以使用这些数据集进行数据预处理,建模等操作,熟悉sklearn的数据处理流程和建模流程;
datasets模块常用数据集的加载函数与解释。
嘿嘿,一来就报错,解决一下子:
好的,我们就采取第二种好了方法好了:【文末附🔗】
将数据集划分为训练集和测试集
k折交叉验证法:将样本打乱,均匀分成k份;轮流选择其中k-1份做训练,剩余的一份做验证;计算预测误差平方和。
train_test_split()函数:能够对数据集进行拆分。
X ,y = data[data.columns.delete(-1)], data['MEDV']X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=888)
sklearn把相关的功能封装为转换器(transformer)。
在数据分析过程中,各类特征处理相关的操作都需要对训练集和测试集分开操作。
y = data['MEDV'] # 标签-房价X = data.drop(['MEDV'], axis=1) #去掉标签(房价)的数据子集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)from sklearn import preprocessingscaler=preprocessing.StandardScaler().fit(X_train)X_train=scaler.transform(X_train)scaler.transform(X_test)
资料分享栏目
数据集之波斯顿房价:
链接:https://pan.baidu.com/s/1za40m3Cq9R0w0pKpe8qhXA
提取码:jq3v
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




