利用PCA对半导体制造数据(secom.data)进行降维

数据集链接
提取码:l552

  1. 对数据进行处理,包括对nan进行处理。要注意,这里的文件是以.data形式给出,对.data文件的处理详见:python利用pandas读取.data文件并对nan进行处理
  2. 浏览本文前请先熟知PCA的基本原理及大致过程,详见:降维基础知识(样本均值、样本方差、中心矩阵)与PCA(最大投影方差,最小重构代价,SVD分解)
  3. 根据PCA理论:构建样本矩阵X、协方差矩阵S、中心矩阵H。
  4. 对S进行特征值分解,并取前K个特征值最大的特征向量(降成K维)。
  5. X与上述新构建的特征向量矩阵相乘,得到最终答案。

完整代码:

import pandas as pd
import numpy as np
from numpy import linalg

def load_file():
   data = pd.read_csv('manifold/secom.data', sep=' ', names=[i for i in range(590)])
   data = np.array(data)

   for i in range(data.shape[1]):
       temp = np.array(data)[:, i].tolist()
       mean = np.nanmean(temp)
       data[np.argwhere(np.isnan(data[:, i].T)), i] = mean

   return data


def pca(K):
    X = load_file()
    N = X.shape[0]
    En = np.eye(N)
    In = np.ones((N, 1), float)

    H = En - (1/N)*np.dot(In, In.T)  #定义中心矩阵
    S = (1/N)*np.dot(np.dot(X.T, H), X)  #定义协方差矩阵

    val, vec = linalg.eig(S)   #求解特征值与特征向量
    sorted_indices = np.argsort(-val)   #从大到小排序
    #取前K个最大的特征值的特征向量
    final = np.zeros((K, vec.shape[1]), float)
    for i in range(K):
        final[i, :] = vec[sorted_indices[i], :]

    final_data = np.dot(X, final.T)  #降为K为后的矩阵
    return final_data


if __name__ == '__main__':
    K = 250
    print(pca(K))
天池智能制造质量预测数据集 背景描述 半导体产业是一个信息化程度高的产业。高度的信息化给数据分析创造了可能性。基于数据的分析可以帮助半导体产业更好的利用生产信息,提高产品质量。 现有的解决方案是,生产机器生产完成后,对产品质量做非全面的抽测,进行产品质量检核。这往往会出现以下状况,一是不能即时的知道质量的好坏,当发现质量不佳的产品时,要修正通常都为时以晚,二是在没有办法全面抽测的状况下,存在很大漏检的风险。 在机器学习,人工智能快速发展的今天,我们希望着由机器生产参数去预测产品的质量,来达到生产结果即时性以及全面性。更进一步的,可基于预先知道的结果,去做对应的决策及应变,对客户负责,也对制造生产更加敏感。 痛点与挑战: 1)TFT-LCD(薄膜晶体管液晶显示器)的生产过程较为复杂,包含几百道以上的工序。每道工序都有可能会对产品的品质产生影响,故算法模型需要考虑的过程变量较多。 2)另外,这些变量的取值可能会存在异常(如测点仪表的波动导致、设备工况漂移等现象),模型需要足够稳定性和鲁棒性。 3)产线每天加工的玻璃基板数以万计,模型需要在满足较高的精准度前提下尽可能实时得到预测结果,这样才能给在实际生产中进行使用。 价值: 1)如果能够建立算法模型准确预测出特性值,便可以实现生产过程的实时监控和预警,提前发现当前工序的问题、避免问题流入到后道工序,减少生产资源浪费的同时也优化了产品良率。 2)基于预测模型得到的关键参数,工艺人员能够快速地针对那些电性表现不佳的产品进行问题溯源分析,重点分析和调整那些关键的影响因子,加快不良问题的处理、提高整体工艺水平。 3)该预测模型在部署后也可以用于减少特性检测相关的工序,能够节约检测资源并且对提升产线整体的产能有正面作用。 数据说明 每条数据包含8029列字段。 第一个字段为ID号码,最后一列为要预测的值Y。其余的数据为用于预测Y的变量X。这些变量一共由多道工序组成,字段的名字可以区分不同的工序,例如 210X1, 210X2。300X1,300X2。字段中的TOOL_ID或者Tool为每道工序使用的机台,如果是string类型,需要选手自行进行数字化转换。注意: 数据中存在缺失值。 测试集分为A/B两份,相比训练集,最后一列的value值是缺失的,研究人员可以根据训练数据做模型训练,并对测试集做预测。为了方便研究人员评测算法效果,我们提供了测试集A的答案。 问题描述 本数据集提供了生产线上的抽样数据,反应机台的温度,气体,液体流量,功率,制成时间等因子。 通过这些因子,需要研究人员设计出模型,准确的预测与之相对应的特性数值。这是一个典型的回归预测问题。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril_KI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值