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

day 33打卡

day 21
常见的降维算法
# 先运行之前预处理好的代码
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
data=pd.read_csv('/Users/gj/东财-学习/python相关资料学习/Python60DaysChallenge-main/data.csv')
# 先筛选字符串变量
discrete_features=data.select_dtypes(include=['object']).columns.to_list()
# Home Ownership 变量
home_ownership_mapping={'Own Home':1,'Rent':2,'Have Mortgage':3,'Home Mortgage':4
}
data['Home Ownership']=data['Home Ownership'].map(home_ownership_mapping)
# Years in current job 变量
years_in_job_mapping={'<1 year':1,'1 year':2,'2 years':3,'3 years':4,'4 years':5,'5 years':6,'6 years':7,'7 years':8,'8 years':9,'9 years':10,'10+ years':11
}
data=pd.get_dummies(data,columns=['Purpose'])
data2=pd.read_csv('/Users/gj/东财-学习/python相关资料学习/Python60DaysChallenge-main/data.csv')
list_final=[]
for i in data.columns:if i  not in data2.columns:list_final.append(i)
for i in list_final:data[i]=data[i].astype(int)# term 0-1 映射
term_mapping={'Short Term':0,'Long Term':1
}
data['Term']=data['Term'].map(term_mapping)
data.rename(columns={'Term':'Long Term'},inplace=True)
continuous_features=data.select_dtypes(include=['int64','float64']).columns.to_list()
# 连续特征用中位数
for feat in continuous_features:mode_value=data[feat].mode()[0]data[feat].fillna(mode_value,inplace=True)# 最开始也说了,很多调参数自带交叉验证,甚至是必选的参数,你如果想要不交叉更麻烦
data.drop(columns=['Id'],inplace=True)
data.info()
特征降维
通常情况下,提到降维,很多时候默认指的是无监督降维,这种方法只需要特征数据本身。但是实际上还包含一种有监督的方法。
1、无监督降维:
定义:这类算法在降维过程中不使用任何关于数据样本的标签信息(比如类别标签、目标值等)。他们仅仅根据数据点本身的分布,方差、相关性、局部结构等特性来寻找低维表示。
输入:只有特征矩阵X
目标:
保留数据中尽可能多的方差(如PCA)
保留数据的局部或全局流型结构(如LLE,LSOMAP,t-SNE,UMAP)
找到能够有效重构原始数据的紧凑表示()
2、有监督降维:
定义:这类算法在降维过程中利用标签信息来指导降维过程。例如,在分类问题中,我们可能希望将不同类别的样本映射到低维空间,同时保持类别之间的区分度。
输入:特征矩阵X和对应的标签y
目标:
在低维空间中保留类别之间的区分度(如LDA)   

最近工作上有点忙,可能每天学习的东西有限了,后面补上

@浙大疏锦行

http://www.xdnf.cn/news/16083.html

相关文章:

  • 基于MCP架构的LLM-Agent融合—构建AI Agent的技术体系与落地实践
  • C++(面向对象封装、继承、多态)
  • Hexo - 免费搭建个人博客03 - 将个人博客托管到github,个人博客公开给大家访问
  • 从 Shell 脚本到 Go 应用:使用 Kiro AI 助手完成 Harpoon 项目重构的完整实践
  • OMS监考系统V2版本无法启动问题解决办法
  • 单片机-----基础知识整合
  • 人工智能——Opencv图像色彩空间转换、灰度实验、图像二值化处理、仿射变化
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘jupyter’问题
  • 大模型开发
  • PDF转Word的简单方法
  • 射频信号(大宽高比)时频图目标检测anchors配置(下)
  • Github上传文件流程图
  • pytest简单使用和生成测试报告
  • Axios 响应拦截器
  • SpringBoot 使用Rabbitmq
  • EDoF-ToF: extended depth of field time-of-flight imaging解读, OE 2021
  • C语言常见的预定符号常量
  • LeetCode 热题100:160.相交链表
  • 神经网络和机器学习的一些基本概念
  • 【Node.js】使用ts-node运行ts文件时报错: TypeError: Unknown file extension “.ts“ for ts 文件
  • 电子设计大赛【摄像头循迹】讲解
  • SpringMVC快速入门之请求与响应
  • 【大模型文生图、文生音频实战Demo】基于Spring AI Alibaba和阿里百炼大模型实现文生图、文生视频
  • WebGIS 中常用公共插件
  • 1688 Agent Russia 丨俄罗斯1688跨境代采系统搭建指南
  • 前端开发 React 状态优化
  • 基于深度学习的图像分类:使用预训练模型进行迁移学习
  • 原创-基于 PHP 和 MySQL 的证书管理系统 第三版
  • Neo4j 框架 初步简单使用(基础增删改查)
  • Neo4j如何修改用户密码?