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

网站怎么无法访问宁波谷歌seo推广

网站怎么无法访问,宁波谷歌seo推广,wordpress注册页面在什么文件,网页设计总结报告500字文章目录 一、PCA降维简单介绍二、python中实现PCA降维函数的介绍三、代码实现四、PCA降维的优缺点 一、PCA降维简单介绍 PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。它通过线性变换将原始数据转换到新的坐标系…

文章目录

  • 一、PCA降维简单介绍
  • 二、python中实现PCA降维函数的介绍
  • 三、代码实现
  • 四、PCA降维的优缺点

一、PCA降维简单介绍

  • PCA(主成分分析,Principal Component Analysis)是一种常用的数据降维技术。
  • 它通过线性变换将原始数据转换到新的坐标系统中,使得任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依此类推。
  • PCA的主要目的是通过保留数据集中对方差贡献最大的特征来降低数据的维度,同时尽可能保留原始数据的信息。
  • PCA降维的步骤
    • 1、标准化数据
      由于PCA对数据的尺度非常敏感,因此在进行PCA之前,通常需要先将数据标准化(也称为归一化),即每个特征减去其均值并除以其标准差,使得每个特征的均值为0,方差为1。
    • 2、计算协方差矩阵
      协方差矩阵衡量的是数据集中各个特征之间的相关性。对于n维数据,其协方差矩阵是一个n×n的矩阵,其中每个元素C ij是第i个特征和第j个特征的协方差。
    • 3、计算协方差矩阵的特征值和特征向量
      特征值表示了每个主成分在数据集中的方差贡献率,而特征向量则定义了新的坐标轴的方向。
    • 4、选择主成分
      根据特征值的大小,选择前k个最大的特征值对应的特征向量。这些特征向量将构成新的特征空间,其中k是降维后的维度数。
    • 5、将原始数据投影到新的特征空间
      使用选定的特征向量作为基,将原始数据投影到新的特征空间,得到降维后的数据。

二、python中实现PCA降维函数的介绍

  • 在Python中,使用scikit-learn库来进行PCA分析,其中PCA是通过PCA类来实现的

  • PCA类有以下参数(默认值)

    PCA(n_components=None, copy=True, whiten=False, svd_solver=’auto’, tol=0.0, iterated_power=’auto’, random_state=None)
    
  • 重要参数的介绍:

  • n_components:这个参数可以帮我们指定希望PCA降维后的特征维度数目。

    • 如果为整数,表示要降维到的目标,比如十维的数据,指定n_components=5,表示将十维数据降维到五维;
    • 如果为小数,表示累计方差百分比。
  • copy : bool类型,True或者False,缺省时默认为True。 表示是否在运行算法时,将原始训练数据复制一份。

    • 若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;
    • 若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。
  • whiten:判断是否进行白化。

    • 所谓白化,就是对降维后的数据的每个特征进行归一化,让方差都为1对于PCA降维本身来说,一般不需要白化。如果你PCA降维后有后续的数据处理动作,可以考虑白化。默认值是False,即不进行白化。
  • svd_solver:即指定奇异值分解SVD的方法,由于特征分解是奇异值分解SVD的一个特例,一般的PCA库都是基于SVD实现的。有4个可以选择的值:{‘auto’, ‘full’, ‘arpack’, ‘randomized’}。

    • randomized一般适用于数据量大,数据维度多同时主成分数目比例又较低的PCA降维,它使用了一些加快SVD的随机算法。
    • full则是传统意义上的SVD,使用了scipy库对应的实现。
    • arpack和randomized的适用场景类似,区别是randomized使用的是scikit-learn自己的SVD实现,而arpack直接使用了scipy库的sparse SVD实现。
    • auto是默认值,即PCA类会自己去在前面讲到的三种算法里面去权衡,选择一个合适的SVD算法来降维。一般来说,使用默认值就够了。
  • 一些返回值属性

    • components_:一个形状为(n_components, n_features)的NumPy数组,包含了定义主成分的特征向量(即每个主成分是原始特征的哪个线性组合)。
    • explained_variance_:一个形状为(n_components,)的NumPy数组,包含了每个主成分解释的方差值。方差值越大,则说明越是重要的主成分。
    • explained_variance_ratio_:一个形状为(n_components,)的NumPy数组,包含了每个主成分解释的方差占总方差的比例。

三、代码实现

  • 数据集介绍

    • 此数据集是一份少量的(60+)鸢尾花数据,前四列为特征数据,最后一列为标签数据
    • 部分数据如下所示
      在这里插入图片描述
  • 此数据中有四个特征,代表的有4个维度,下面将通过PCA降维方法将其降维至2维,并将降维后的特征数据划分为新的数据集,传入到逻辑回归模型中进行训练与测试

  • 并将没有进行PCA降维处理的原数据也传入到回归模型中,得出结果,进行比较

  • 代码如下

    from sklearn.decomposition import PCA
    import pandas as pd# 读取数据
    data = pd.read_excel('hua.xlsx')# 数据划分
    x = data.iloc[:, :-1]  # 训练数据
    y = data.iloc[:, -1]  # 标签数据# 实例化PCA对象
    pca = PCA(n_components=2)
    pca.fit(x)print('特征所占百分比:{}'.format(sum(pca.explained_variance_ratio_)))
    print('每个主成分的方差值:{}'.format(pca.explained_variance_))new_x = pca.transform(x)
    print('PCA降维后数据:')
    print(new_x)# 切分降维后的数据集
    from sklearn.model_selection import train_test_splitx_train_pca, x_test_pca, y_train_pca, y_test_pca = \train_test_split(new_x, y, test_size=0.2, random_state=0)from sklearn.linear_model import LogisticRegression# 实例一个逻辑回归模型
    classifier_pca = LogisticRegression()
    classifier_pca.fit(x_train_pca, y_train_pca)  # 训练数据from sklearn import metrics# accuracy 值
    train_score_pca = classifier_pca.score(x_train_pca, y_train_pca)
    print("训练集数据测试的accuracy值为:{}".format(train_score_pca))
    # 训练集数据评估指标报告
    train_predict_pca = classifier_pca.predict(x_train_pca)
    print("训练集数据评估指标报告")
    print(metrics.classification_report(y_train_pca, train_predict_pca))test_score_pca = classifier_pca.score(x_test_pca, y_test_pca)
    print("测试集数据测试的accuracy值为:{}".format(test_score_pca))
    # 测试集数据评估指标报告
    test_predict_pca = classifier_pca.predict(x_test_pca)
    print("测试集数据评估指标报告")
    print(metrics.classification_report(y_test_pca, test_predict_pca))print("**************************************************************")# 切分原始数据集
    x_train, x_test, y_train, y_test = \train_test_split(x, y, test_size=0.2, random_state=0)classifier = LogisticRegression()
    classifier.fit(x_train, y_train)# accuracy 值
    train_score = classifier.score(x_train, y_train)
    print("训练集数据测试的accuracy值为:{}".format(train_score))
    # 训练集数据评估指标报告
    train_predict = classifier.predict(x_train)
    print("训练集数据评估指标报告")
    print(metrics.classification_report(y_train, train_predict))test_score = classifier.score(x_test, y_test)
    print("测试集数据测试的accuracy值为:{}".format(train_score))
    # 测试集数据评估指标报告
    test_predict = classifier.predict(x_test)
    print("测试集数据评估指标报告")
    print(metrics.classification_report(y_test, test_predict))
    
  • 结果如下
    在这里插入图片描述
    在这里插入图片描述

  • 由于此数据集的数据量太少,降维前后的模型训练结果基本差不多,在大的数据集中对比最终的结果可能会更加明显

四、PCA降维的优缺点

  • 优点:
    • 1.计算方法简单,容易实现。
    • 2.可以减少指标筛选的工作量。
    • 3.消除变量间的多重共线性。
    • 4.在一定程度上能减少噪声数据。
  • 缺点:
    • 1.特征必须是连续型变量(可以在一定范围内连续取值的变量)。
    • 2.无法解释降维后的数据是什么。
    • 3.有时候贡献率小的成分有可能更重要,但是会被降维的时候舍弃掉。
http://www.hkea.cn/news/549002/

相关文章:

  • 奉贤建设机械网站制作长沙网址seo
  • 上海企业网站模板建站常用的网络推广方法
  • 大连零基础网站建设教学培训济南seo优化公司
  • html 做网站案例简单网站推广建设
  • 践行新使命忠诚保大庆网站建设线上广告
  • 定制网站建设服务商商家联盟营销方案
  • 集团官网建设公司外贸seo推广公司
  • 佛山新网站制作平台网站诊断工具
  • 做PPT的网站canvawhois查询
  • 营销型网站建设吉林定制化网站建设
  • 个人网上公司注册流程图新站优化案例
  • 做se要明白网站明星百度指数排名
  • 网页微博草稿箱在哪西安seo推广优化
  • 嘉兴微信网站建设谷歌首页
  • 什么网站做海报b站不收费网站
  • 如何自己做个简单网站seo知识点
  • 有哪些做批发的网站有哪些手续百度推广优化是什么意思
  • 用阿里巴巴店铺做公司网站怎么样引擎搜索有哪些
  • 网页制作软件属于什么软件类别简述seo的优化流程
  • 网站建设 公司新闻谷歌排名网站优化
  • 怎样做自己的vip解析网站佛山外贸seo
  • 我的网站在百度搜不到了seo是什么职业做什么的
  • 网站私信界面国外网站seo免费
  • wordpress mysql类惠州网站seo
  • 为什么做网站必须要用域名举出最新的网络营销的案例
  • 电子请柬网站开发百度竞价推广登录入口
  • 网站设计与推广国际时事新闻2022最新
  • 柬埔寨网站开发营销技巧和营销方法
  • 网站建立价格长沙网站外包公司
  • 王建设医生个人网站免费google账号注册入口