当前位置: 首页 > wzjs >正文

店铺只做商品展示网站怎么做seo智能优化系统

店铺只做商品展示网站怎么做,seo智能优化系统,手机网站用什么制作,众鱼深圳网站建设目录 一、特征选择概念 二、特征选择的方法 2.1 过滤式特征选择 2.1.1 方差分析 2.1.2 相关系数 2.1.3 卡方检验 2.2 包裹式特征选择 2.2.1 递归特征消除 2.3 嵌入式特征选择 2.3.1 决策树特征重要性 一、特征选择概念 特征选择是机器学习非常重要的一个步骤&#x…

目录

一、特征选择概念

二、特征选择的方法

2.1 过滤式特征选择

2.1.1 方差分析

2.1.2 相关系数

2.1.3 卡方检验

2.2 包裹式特征选择

2.2.1 递归特征消除

2.3 嵌入式特征选择

2.3.1 决策树特征重要性


一、特征选择概念

特征选择是机器学习非常重要的一个步骤,它指的是从原始数据中选择最相关的特征,以用于训练模型和预测。通过特征选择,可以提高模型的性能、减少过拟合、降低计算复杂度。

下面是使用随机森林进行特征选择的示例代码:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification# 创建一个样本数据集
X, y = make_classification(n_samples = 1000, n_features = 20, n_informative = 10, random_state = 0)# 使用随机森林进行特征选择
clf = RandomForestClassifier()
clf.fit(X, y)# 输出特征重要性
feature_importances = clf.feature_importances_
print("Feature importances:\n", feature_importances)# 选择重要性大于阈值的特征
selected_features = [i for i, importance in enumerate(feature_importances) if importance > 0.05]
print("Selected features:\n", selected_features)

二、特征选择的方法

特征选择的方法主要分为三类:过滤式特征选择、包裹式特征选择和嵌入式特征选择。

2.1 过滤式特征选择

过滤式特征选择是在特征选择和模型训练之前独立进行的,它基于特征之间的统计指标或特征和目标变量之间的相关性来评估特征的重要性。常用的过滤方法包括方差分析、相关系数、卡方检验等。这种方法的优势在于计算简单快速,适用于大规模数据集,但可能忽略了特征之间的相互关系。

2.1.1 方差分析

方差分析用于比较两个或多个组之间的平均值是否有显著差异。在特征选择中,可以利用方差分析来评估不同特征对目标变量的影响程度。

from scipy import stats# 示例数据
group1 = [10, 20, 30, 40, 50]
group2 = [15, 25, 35, 45, 55]
group3 = [5, 15, 25, 35, 45]# 进行方差分析
f_statistic, p_value = stats.f_oneway(group1, group2, group3)if p_value < 0.05:print("均值之间存在显著差异")
else:print("均值之间不存在显著差异")

2.1.2 相关系数

相关系数用于衡量两个变量之间的线性相关性。在特征选择中,可以通过计算特征与目标变量之间的相关系数来筛选与目标变量相关性高的特征。

import pandas as pd# 示例数据
data = {'feature1': [1, 2, 3, 4, 5],'feature2': [2, 4, 6, 8, 10],'target': [5, 10, 15, 20, 25]}df = pd.DataFrame(data)# 计算特征与目标变量之间的相关系数
correlation = df.corr()['target']
print(correlation)

2.1.3 卡方检验

卡方检验适用于分类变量之间的关联性检验,用于判断两个分类变量之间是否存在显著关联。

在scikit-learn中提供了SelectKBest类, 是对卡方验证的实现,通过SelectKBest 使用一系列的统计方法来选定数据特征。

卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。

下面是通过卡方检验的方式来选择四个对结果影响最大的数据特征:(印地安人糖尿病数据集

from pandas import read_csv
from numpy import set_printoptions
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2filename = 'Sklearn\pima_data.csv'          # 导入数据
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)array = data.values
X = array[:, 0:8]       # 将数据分为输入数据和输出结果
Y = array[:, 8]test = SelectKBest(score_func = chi2, k = 4)    # 特征选定
fit = test.fit(X, Y)
set_printoptions(precision = 3)
print(fit.scores_)
features = fit.transform(X)
print(features)

2.2 包裹式特征选择

包裹式特征选择是在模型训练的过程中进行的,它直接利用模型的性能来评估特征的重要性。常见的包裹式方法包括递归特征消除(RFE)、基于模型的特征选择等。这种方法的优势在于考虑了特征之间的相互影响,但计算开销较大,不适用于大规模数据集。

2.2.1 递归特征消除

递归特征消除(RFE),使用一个基模型来进行多轮训练,每轮训练后,消除若干权值系数的特征,再基于新的特征集进行下一轮训练。通过每一次基模型的精度,来找到对最终的预测结果影响最大的数据特征。在scikit-learn文档中有更多的关于递归特征消除(RFE)的描述。

下面是通过递归特征消除来选定对预测结果影响最大的三个数据特征:(印地安人糖尿病数据集

from pandas import read_csv
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegressionfilename = 'Sklearn\pima_data.csv'        # 注意数据集的路径
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)array = data.values
X = array[:, 0:8]
Y = array[:, 8]model = LogisticRegression()            # 特征选定
rfe = RFE(model, n_features_to_select = 3)
fit = rfe.fit(X, Y)print("特征个数:\n",fit.n_features_)
print("被选定的特征:\n",fit.support_)
print("特征排名:",fit.ranking_)

2.3 嵌入式特征选择

嵌入式特征选择是将特征选择嵌入到模型训练的过程中,常用的方法包括Lasso回归、决策树特征重要性等。这种方法可以同时考虑特征的重要性和模型的性能,得到的特征选择结果较为稳健。但是,嵌入式特征选择通常需要调节超参数,对模型的选择和调优有一定要求。

2.3.1 决策树特征重要性

决策树是一种常用的机器学习算法,除了用于预测和分类外,还可以用于特征选择。在决策树算法中,可以通过计算特征的重要性来衡量特征对模型预测的贡献程度,从而进行特征选择。

使用ExtraTreesClassifier类进行特征重要性计算,让算法给出每一个数据特征的得分:

from pandas import read_csv
from sklearn.ensemble import ExtraTreesClassifierfilename = 'Sklearn\pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names = names)array = data.values
X = array[:, 0:8]
Y = array[:, 8]model = ExtraTreesClassifier()
fit = model.fit(X, Y)
print(fit.feature_importances_)
http://www.dtcms.com/wzjs/475557.html

相关文章:

  • 岳阳网站建设开发搜索引擎调词平台
  • 网络视频网站建设多少钱网站推广软件免费
  • 网站是什么平台江苏建站
  • 网站利用e4a做app51外链代发网
  • 网站建设及优化网站关键词排名优化价格
  • 建设工程监理招标网站太原网站seo
  • 国外做博彩网站安全吗谷歌seo教程
  • 如何看网站做没做推广郑州网站seo公司
  • 便宜的游戏服务器租用青岛网站快速排名优化
  • 网站备案名称规定免费做网站网站的软件
  • 遵义怎样做网站网站优化排名方法有哪些
  • 沈阳网站建设三好街百度 指数
  • 信云科技的vps怎么做网站网络服务器地址怎么查
  • 住房和城乡建设部幼儿园网站百度推广账号注册
  • 做公众号需要做网站吗自己做网站建设
  • 网站平台建设实训日志seo在线优化技术
  • 网站js文件夹泉州全网营销
  • 南宁电子商务网站建设搜索引擎营销原理
  • php网站建设毕业论文数据库分析电商网址
  • 泰安的网站建设公司百度推广优化技巧
  • 龙岩市建设局网站seo网站优化软件
  • 企业建设网站公司哪家好网络营销推广价格
  • 嘉兴seo网站优化百度网盘破解版
  • 芜湖企业医疗网站优化公司
  • 上海网站建设制作百橙品牌推广的概念
  • 三只松鼠的网站建设理念小姐关键词代发排名
  • 每月网站流量东莞网站制作公司
  • 网站标题关键词怎么做求个网站
  • 敬请期待英语seo推广方式是什么呢
  • 用模板做网站的方法好搜搜索引擎