慕子魇 2023-04-28 15:57 采纳率: 0%
浏览 12
已结题

只有一个思路但是想实现

#只有一个思路但是想实现
现在有5类参数第一个25003500范围的随机数,第二个参数-4060随机数,第三个参数,0100随机数,第四个参数020000的随机数,四个参数为一组,第五个参数就是一组参数的重复值,最后展示结果为3D散点图,想让第五个参数作为权重值来进行聚类的分析,最后想得到的结果是得到第一个参数,第二个参数,第四个参数分别于第三个参数的关系,还有如果有第一个参数第二个参数第四个参数,可以推算出第三个参数

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-28 18:21
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7586156
    • 除此之外, 这篇博客: 2020华数杯C题脱贫帮扶绩效评价你怕了吗?中的 问题二:160 个帮扶单位帮扶着基础不同的村庄,帮扶单位帮扶工作的态度、目标、投入、帮扶干部素质等显然是有差异的。仅仅用 2020 年各村庄评分高低显然是无法真正有效的体现一个帮扶单位在脱贫攻坚提升方面所做出的努力。请你运用附件的数据,阐明什么类型的帮扶单位,哪些帮扶单位在脱贫帮扶上面有较高的绩效?请给不同类型的帮扶单位绩效排序,给出脱贫帮扶绩效前十名的帮扶单位编号。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 基本思路是:构造指标-计算各指标的权重-TOPSIS法进行评价
      为了有效凸显出五年来帮扶单位在脱贫攻坚提升方面所作出的努力,计算了各指标的增长率,即

      2020_SR/2015_SR,2020_CY/2015_CY,……,2020_ZF/2015_ZF
      主成分分析法是一种线性无监督的降维方法,可以通过主成分分析法计算各指标方差贡献率,以此作为各指标的权重。接着采用TOPSIS法进行评价,TOPSIS法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。基本过程为基于归一化后的原始数据矩阵,采用余弦法找出有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。

      #构造评价指标
      data_2 = pd.DataFrame(data.pivot_table(index=['帮扶单位(0-159)','村庄编号','帮扶单位类型(0-5)'],values=columns)).reset_index()
      for j in range(6):
          data_2['{}_增长率'.format(j)] =  data_2.iloc[:,9+j]/data_2.iloc[:,j+3]
          
      data_2 = data_2.drop(['帮扶单位(0-159)','村庄编号','帮扶单位类型(0-5)'],axis=1).drop(columns,axis=1)
      c = ['CY_增长率','HJ_增长率','SR_增长率','SS_增长率','WJ_增长率','ZF_增长率']
      data_2.columns = c
      
      # 数据归一化
      def Standard(data):
          return (data - data.min())/(data.max()-data.min())
      data_2 = Standard(data_2)
      
      # PCA计算指标权重
      from sklearn.decomposition import PCA
      from sklearn import preprocessing
      pca = PCA(n_components=6)
      pca.fit_transform(data_2)
      weight = pca.explained_variance_ratio_  #方差贡献率
      print(weight)
      
      def topsis(data, weight):
          # 最优最劣方案
          Z = pd.DataFrame([data.min(), data.max()], index=['负理想解', '正理想解'])
          # 距离
          Result = data.copy()
          Result['正理想解'] = np.sqrt(((data - Z.loc['正理想解']) ** 2 * weight).sum(axis=1))
          Result['负理想解'] = np.sqrt(((data - Z.loc['负理想解']) ** 2 * weight).sum(axis=1))
          # 综合得分指数
          Result['综合得分指数'] = Result['负理想解'] / (Result['负理想解'] + Result['正理想解'])
          Result['排序'] = Result.rank(ascending=False)['综合得分指数']
          return Result
      results = topsis(data_2,weight)
      
      results['帮扶单位(0-159)'] = data['帮扶单位(0-159)']
      results['帮扶单位类型(0-5)'] = data['帮扶单位类型(0-5)']
      results.sort_values(by='排序').head(10)
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月30日
  • 创建了问题 4月28日

悬赏问题

  • ¥15 idea自动补全键位冲突
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 定制ai直播实时换脸软件
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页