二、特征工程

二、特征工程

2.1 获取数据集

引用:

 from sklearn.datasets import load_数据集名称(大)
 from sklearn.datasets import fetch_数据集名称(小)

获取数据集:

数据集名称 = load_/ fetch_数据集名称()

数据集的返回值:

特征值data
目标值target
特征名feature_names
目标名target_names
数据描述DESCR
获取返回值:数据集.data\数据集["data"]

划分训练集&测试集:

引用:from sklearn.model_selection import train_test_split
划分:x_train,x_test,y_train,y_test = 
train_test_split(数据集.特征值,数据集.目标值,test_size=?,random_state=?)
#训练集特征值,训练集目标值,测试集特征值,测试集特征值
#划分test_size在(0,1)之间
#随机数种子random_state,不同的随机数种子采样结果不同

2.2 特征提取

1.字典特征提取
引用:

from sklearn.feature_extraction import DictVectorizer

提取:

特征值:data=[{},{}......]
实例化:transfer = DictVectorizer(sparse = True/False)
调用:data_new = transfer.fit_transform(data)
#True:返回sparse矩阵 / False:返回one-hot编码

2.文本特征提取
引用:

from sklearn.feature_extraction.text import CounterVectorizer,TfidfVectorizer

英文提取:

data = ["......"]
实例化:transfer = CounterVectorizer/TfidfVectorizer(stop words=["...","..."])
调用:data_new = transfer.fit_transform(data)
# TfidfVectorizer可以反映关键词出现的频率

中文提取:

引入jieba:import jieba
定义分词函数:def cut_word(text):
			 return " ".join(list(jieba.cut(text)))
利用for循环建立分好词的列表:
data = ["......"]
data_1 = []
for a in data:
	data_1.append(cut_word(a))
实例化+调用:
transfer = CounterVectorizer/TfidfVectorizer(stop words=["...","..."])
data_2 = transfer.fit_transform(data_1)

输出:

输出特征名:print( transfer.get_feature_names_out())
输出sparse矩阵:print(data.toarray())

2.3 特征预处理

1.归一化

引用:from sklearn.preprocessing import MinMaxScaler
读取数据:import pandas as pd
		 data = pd.read_csv("文件名")
实例化:transfer = MinMaxScaler(feature_range(a,b))
#feature_range(a,b)为归一化数据范围
调用:data_new = tramsfer.fit_transform(data)

2.标准化
把数据都变换到均值为0,标准差为1范围内

引用:from sklearn.preprocessing import StandardScaler
读取数据:import pandas as pd
		 data = pd.read_csv("文件名")
实例化:transfer = StandardScaler()
调用:data_new = tramsfer.fit_transform(data)

2.4 特征降维

1.特征选择
低方差特征过滤

引用:from sklearn.feature_selection import VarianceThreshold
读取数据:import pandas as pd
		 data = pd.read_csv("文件名")
实例化:transfer = VarianceThreshold(threshold=)
#threshold过滤方差数,默认为0
调用:data_new = tramsfer.fit_transform(data)

相关系数

引用:from spicy.stats import pearsonr
计算系数:r = pearsonr(data["参数1"],data["参数2"])

2.主成分分析PCA

引入:from sklearn.decomposition import PCA
传入数据:data = [......]
实例化:transfer = PCA(相关度/特征数)
#相关度在(0,1)之间,表示想要保留百分之多少的信息
#特征数为想要降到的特征数目
调用:data_new = tramsfer.fit_transform(data)
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值