欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 人工智能常见的数据处理方法

人工智能常见的数据处理方法

2025/4/26 14:12:50 来源:https://blog.csdn.net/2301_79144343/article/details/147519801  浏览:    关键词:人工智能常见的数据处理方法

在人工智能的数据处理中,常见的数据类型包括结构化数据(表格数据)、非结构化数据(文本、图像、音频)、时间序列数据等。以下是不同数据类型的典型处理任务、常用库及案例函数 / 方法:

一、结构化数据处理

1. 数据清洗
  • 任务:处理缺失值、异常值、重复数据、格式转换
  • 常用库pandasscikit-learn
  • 案例函数 / 方法
    • 缺失值处理
      import pandas as pd
      df.dropna()  # 删除含缺失值的行(axis=0)或列(axis=1)
      df.fillna(df.mean())  # 用均值填充数值型缺失值
      from sklearn.impute import SimpleImputer
      imputer = SimpleImputer(strategy='median')  # 中位数填充(适用于偏态数据)
      
    • 异常值处理(以 Z-score 法为例):
      z_scores = (df['column'] - df['column'].mean()) / df['column'].std()
      df_clean = df[np.abs(z_scores) < 3]  # 保留Z-score在(-3, 3)内的数据
      
    • 重复数据处理
      df = df.drop_duplicates()  # 删除完全重复的行
      df = df.drop_duplicates(subset=['id'])  # 按指定列去重
      
2. 数据转换
  • 任务:类别变量编码、标准化、归一化
  • 案例函数 / 方法
    • 类别编码
      pd.get_dummies(df['category'])  # 独热编码(One-Hot Encoding)
      from sklearn.preprocessing import LabelEncoder
      le = LabelEncoder()  # 标签编码(适用于有序类别)
      df['encoded'] = le.fit_transform(df['category'])
      
    • 标准化与归一化
      from sklearn.preprocessing import StandardScaler, MinMaxScaler
      scaler = StandardScaler()  # 标准化(均值为0,方差为1)
      normalized_data = MinMaxScaler(feature_range=(0, 1)).fit_transform(df)  # 归一化到[0,1]
      
3. 特征工程
  • 任务:特征选择、特征生成、降维
  • 案例函数 / 方法
    • 特征选择
      from sklearn.feature_selection import VarianceThreshold
      selector = VarianceThreshold(threshold=0.1)  # 删除方差低于阈值的特征
      from sklearn.feature_selection import SelectKBest, f_classif
      X_selected = SelectKBest(score_func=f_classif, k=10).fit_transform(X, y)  # 保留Top-10特征
      
    • 降维
      from sklearn.decomposition import PCA
      pca = PCA(n_components=0.95)  # 保留95%方差的主成分
      X_pca = pca.fit_transform(X)
      

二、文本数据处理

1. 基础清洗与预处理
  • 任务:分词、停用词去除、词形还原、大小写统一
  • 常用库nltkspaCyjieba(中文)
  • 案例函数 / 方法
    • 英文处理
      import nltk
      nltk.download('stopwords')
      from nltk.tokenize import word_tokenize
      from nltk.stem import PorterStemmer
      stopwords = set(nltk.corpus.stopwords.words('english'))
      tokens = [word.lower() for word in word_tokenize(text) if word.lower() not in stopwords]  # 分词+去停用词+小写
      stemmer = PorterStemmer()
      stemmed_tokens = [stemmer.stem(token) for token in tokens]  # 词干提取
      
    • 中文处理
      import jieba
      tokens = jieba.lcut(text)  # 中文分词
      
2. 向量化
  • 任务:将文本转换为数值特征(词袋、TF-IDF、嵌入向量)
  • 案例函数 / 方法
    • 词袋模型与 TF-IDF
      from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
      vectorizer = TfidfVectorizer(max_features=5000)  # 生成TF-IDF矩阵,保留前5000个高频词
      X_tfidf = vectorizer.fit_transform(corpus)
      
    • 预训练词向量
      from gensim.models import Word2Vec
      model = Word2Vec(sentences=tokenized_corpus, vector_size=100, window=5)  # 训练Word2Vec模型
      word_embedding = model.wv['example']  # 获取单词的嵌入向量
      
3. 高级处理(如 NER、文本生成)
  • 任务:命名实体识别、文本生成数据增强
  • 案例工具
    • NERspaCynlp = spacy.load("en_core_web_sm"); doc = nlp(text); entities = [(ent.text, ent.label_) for ent in doc.ents]
    • 数据增强:同义词替换(如nlpaug库):
      import nlpaug.augmenter.word as naw
      aug = naw.SynonymAug(aug_src='wordnet')  # 基于WordNet的同义词替换
      augmented_text = aug.augment(text)
      

三、图像数据处理

1. 基础预处理
  • 任务:读取图像、调整尺寸、灰度转换、数据增强
  • 常用库OpenCVPillowTensorFlow
  • 案例函数 / 方法
    • 读取与尺寸调整
      import cv2
      image = cv2.imread('image.jpg')  # 读取BGR格式图像
      image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # 转换为RGB(适用于Pytorch/TensorFlow)
      resized_image = cv2.resize(image, (224, 224))  # 调整尺寸为224x224
      
    • 数据增强(训练集常用)
      from tensorflow.keras.preprocessing.image import ImageDataGenerator
      datagen = ImageDataGenerator(rotation_range=20,  # 随机旋转20度width_shift_range=0.2,  # 水平平移shear_range=0.2,  # 剪切变换
      )
      augmented_images = datagen.flow(X_train, y_train, batch_size=32)
      
2. 特征提取
  • 任务:手动特征(如 HOG)、深度学习特征(预训练模型)
  • 案例方法
    • HOG 特征
      from skimage.feature import hog
      hog_features = hog(image, orientations=8, pixels_per_cell=(16, 16))
      
    • 预训练模型提取特征
      from tensorflow.keras.applications import ResNet50
      model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
      features = model.predict(resized_image[np.newaxis, ...])
      

四、时间序列数据处理

1. 时间戳处理
  • 任务:解析时间格式、生成时间特征(年 / 月 / 日、星期、时间间隔)
  • 案例函数 / 方法
    import pandas as pd
    df['timestamp'] = pd.to_datetime(df['timestamp'])  # 转换为datetime类型
    df['year'] = df['timestamp'].dt.year  # 提取年份
    df['hour'] = df['timestamp'].dt.hour  # 提取小时
    
2. 序列特征工程
  • 任务:滑动窗口、差分、频率域转换
  • 案例方法
    • 滑动窗口统计
      df['rolling_mean_7d'] = df['value'].rolling(window=7).mean()  # 7天滚动均值
      df['rolling_std_7d'] = df['value'].rolling(window=7).std()  # 7天滚动标准差
      
    • 傅里叶变换(提取频率特征)
      import numpy as np
      fft = np.fft.fft(df['value'].values)
      freq_features = np.abs(fft)[:len(fft)//2]  # 取前半段频率分量
      
3. 缺失值处理(时序特化)
  • 任务:时间序列插值(线性、三次样条)
  • 案例方法
    df['value'] = df['value'].interpolate(method='linear')  # 线性插值
    df['value'] = df['value'].interpolate(method='spline', order=3)  # 三次样条插值
    

五、通用数据处理工具与流程

1. 数据加载与保存
  • 结构化数据pd.read_csv()/pd.to_csv()pd.read_excel()/pd.to_excel()
  • 图像数据cv2.imread()/cv2.imwrite()PIL.Image.open()
  • 文本数据:Python 内置open()函数,pd.read_json()(JSON 格式文本)
2. 数据分桶与离散化
  • 任务:将连续数据转换为类别(如年龄分桶)
  • 案例方法
    df['age_bucket'] = pd.cut(df['age'], bins=[0, 18, 30, 50, 100], labels=['儿童', '青年', '中年', '老年'])
    
3. 数据平衡(处理类别不平衡)
  • 任务:过采样(SMOTE)、欠采样(随机欠采样)
  • 案例方法
    from imblearn.over_sampling import SMOTE
    X_resampled, y_resampled = SMOTE().fit_resample(X, y)  # 过采样少数类
    from imblearn.under_sampling import RandomUnderSampler
    X_resampled, y_resampled = RandomUnderSampler().fit_resample(X, y)  # 欠采样多数类
    

六、总结:数据处理核心流程

  1. 数据加载:根据格式选择工具(Pandas、OpenCV、NLTK 等)。
  2. 数据清洗:处理缺失 / 异常 / 重复数据,统一格式(如时间戳、数值类型)。
  3. 数据转换
  • 结构化数据:类别编码、标准化、归一化。
  • 非结构化数据:文本向量化、图像尺寸调整 / 增强、音频 MFCC 特征提取。
  1. 特征工程:生成新特征(如时间序列的滚动统计)、降维(PCA、t-SNE)。
  2. 数据保存:输出为模型输入格式(如 Numpy 数组、TFRecord、PyTorch 张量)。

通过上述方法,可将原始数据转换为适合机器学习模型输入的高质量特征,显著提升模型性能。针对具体场景(如自然语言处理、计算机视觉、时序预测),需结合领域知识选择最适配的工具和方法。

更多详细的内容可参考菜鸟教程👇欢迎交流学习

Pandas 数据清洗 | 菜鸟教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词