- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
假设你有一家理发店,已经记录了过去一年中所有顾客的头发长度和发型偏好的数据。现在你想从这些数据中提取一些主要的信息,比如顾客最常选择的发型类型,以及不同发型之间的相关性等。这对于你未来开展有针对性的营销活动很有帮助.
具体来说,我们可以将每个顾客的发型偏好用一个多维向量来表示,每一维度对应一种发型类型的喜好程度(比如评分1-5分)。这样,所有顾客就形成了一个海量的、高维的数据集.
这时候,我们可以对这个数据集进行主成分分析(PCA)。PCA的核心就是找到数据的主要特征向量,即那些能够最大程度解释数据方差的方向向量.
例如,假设经过PCA分析,发现主要有两个显著的特征向量
沿着这两个特征向量方向投影,就可以非常准确地还原出原始的高维数据.
这意味着,尽管原始数据有很多维度(发型类型),但是顾客的实际偏好可以用"时尚发型"和"保守发型"这两个主成分来概括和解释.
利用这两个主要特征向量,你可以
所以,通过PCA分析得到的特征向量,可以帮助我们从高维复杂的数据中提取出主要的信息,发现数据背后的内在结构和群体特征,从而指导后续的决策.
一个主成分分析(PCA)的具体计算过程示例。我们继续用理发店的发型偏好数据作为例子.
假设我们有5个顾客,每个顾客对5种发型(A,B,C,D,E)的喜好程度用1-5分评分,数据如下
顾客1: [5, 4, 2, 1, 3] 顾客2: [4, 5, 1, 2, 3] 顾客3: [2, 1, 5, 4, 3] 顾客4: [1, 2, 4, 5, 2] 顾客5: [3, 3, 3, 3, 3]
我们的目标是找到能最大程度解释这些数据方差的主要特征向量。计算步骤如下
具体计算
[2 1 -1 -2 0 ] [1 2 -2 -1 0 ] [-1 -2 2 1 0 ] [-2 -1 1 2 -1 ] [0 0 0 0 0 ]
[3.2 0.8 -0.8 -0.8 -0.8] [0.8 3.2 -0.8 -0.8 -0.8] [-0.8 -0.8 3.2 0.8 0.8] [-0.8 -0.8 0.8 3.2 0.8] [-0.8 -0.8 0.8 0.8 0.8]
计算Σ的特征值和对应特征向量(略去具体过程): 特征值1 = 6.828, 对应特征向量v1 = [0.456, 0.456, -0.456, -0.456, -0.364] 特征值2 = 2.172, 对应特征向量v2 = [0.556, -0.282, -0.282, 0.718, 0.166] ... 。
由于前两个特征值最大,所以选取v1和v2作为主成分 。
v1对应"时尚发型"的主成分, v2主要对应"保守发型" 。
通过将原始5维数据投影到由v1和v2张成的2维空间,就能很好地概括原始数据的主要模式和差异。 通过矩阵运算来计算每个数据点在v1和v2方向上的投影分量.
原始的5维数据为X = (x1, x2, x3, x4, x5),其中x1-x5分别是顾客对5种发型的评分.
现在我们想将X投影到由v1和v2张成的2维平面上,可以通过下面的矩阵运算: X' = [v1 v2]T * X 。
TRONG
具体运算就是
通过这样的矩阵投影运算,我们就能将任意一个原始5维数据X,映射到一个二维坐标点(x1',x2')上.
不同顾客对应的二维坐标点(x1',x2')分布在2D平面上,散点分布的模式就能很好地展示
这种将原始高维数据投影到主成分2维平面的方法,我们既降低了维度,又能很好地保留和展示数据中的主要模式和差异信息,这正是PCA的精髓所在.
这个例子展示了如何通过PCA的数学计算过程,从复杂数据中发现主要的特征向量,并利用它们提取主成分信息.
最后此篇关于主成分分析(PCA)介绍的文章就讲到这里了,如果你想了解更多关于主成分分析(PCA)介绍的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Buổi tối, tôi thấy một người bạn có biệt danh "乱码" trên QQ trả lời một câu hỏi trong Soso Q&A: Có cách nào để định nghĩa một mảng byte trong VBS không? Có cách nào để định nghĩa mảng byte trong VBS không? Đây là mảng kiểu con byte (VarType là kiểu của 8209). Lưu ý rằng nó không phải là V
Ví dụ, ứng dụng quản lý lực lượng lao động có thể bao gồm lớp EmPloyee. Lớp này sau đó có thể được sử dụng để tạo và duy trì các thể hiện cụ thể, chẳng hạn như Gonn và Sally. Việc tạo một đối tượng dựa trên một lớp được xác định trước thường được gọi là khởi tạo lớp.
Trong ngôn ngữ tự nhiên, chúng ta hiểu các khái niệm trừu tượng là mô tả tổng quát về một đối tượng, là đặc điểm chung của một lớp đối tượng nhất định. Điều tương tự cũng đúng trong PHP. Chúng ta trừu tượng hóa một lớp để chỉ ra hành vi chung của lớp. Lớp này phải là một mẫu, biểu thị
DBA_2PC_PENDING Oracle tự động xử lý các giao dịch phân tán để đảm bảo tính nhất quán của các giao dịch phân tán và tất cả các trang web đều được cam kết đầy đủ hoặc hoàn nguyên hoàn toàn. Thông thường, quá trình xử lý được hoàn tất trong thời gian ngắn đến mức không thể nhận thấy được. Tuy nhiên, nếu bạn cam kết hoặc
Quy trình tính toán danh mục Thành phần dự báo Tính toán Giả sử bạn có một tiệm cắt tóc và đã ghi lại dữ liệu về độ dài tóc và sở thích kiểu tóc của tất cả khách hàng trong năm qua. Bây giờ bạn muốn trích xuất một số thông tin quan trọng từ dữ liệu này, chẳng hạn như
Hàm Object.defineProperty định nghĩa một thuộc tính mới trực tiếp trên một đối tượng hoặc sửa đổi một thuộc tính hiện có của một đối tượng và trả về đối tượng đó. 1. Sử dụng đơn giản const obj = {} Object.defineP
Trang web chính thức của SPL http://www.scudata.com.cn/ Giới thiệu Logic kinh doanh thường bao gồm các quy trình và tính toán phức tạp hơn, đồng thời cũng liên quan đến việc đọc và ghi cơ sở dữ liệu. Do sự ủy quyền rắc rối, ảnh hưởng đến bảo mật cơ sở dữ liệu, không thể di chuyển, yêu cầu kỹ thuật cao và khó khăn trong việc viết, nên nó rất
Trang web chính thức của SPL http://www.scudata.com.cn/ Giới thiệu Logic kinh doanh thường bao gồm các quy trình và tính toán phức tạp hơn, đồng thời cũng liên quan đến việc đọc và ghi cơ sở dữ liệu. Do sự ủy quyền rắc rối, ảnh hưởng đến bảo mật cơ sở dữ liệu, không thể di chuyển, yêu cầu kỹ thuật cao và khó khăn trong việc viết, nên nó rất
Thrift là một khuôn khổ RPC dựa trên kiến trúc CS. Ban đầu nó được phát triển bởi Facebook và được chuyển giao cho tổ chức Apache vào năm 2008. Các nhà phát triển có thể sử dụng IDL (Ngôn ngữ định nghĩa giao diện) do Thrift cung cấp để xác định
Ứng dụng cơ sở dữ liệu tồn tại tách biệt với ứng dụng chính và lưu trữ bộ sưu tập dữ liệu. Mỗi cơ sở dữ liệu sử dụng một hoặc nhiều API để tạo, truy cập, quản lý, tìm kiếm và sao chép dữ liệu chứa trong đó. Cơ sở dữ liệu cũng hoạt động với các nguồn dữ liệu không quan hệ, chẳng hạn như đối tượng hoặc tệp. Tuy nhiên, cơ sở dữ liệu chứng minh là một số lượng lớn
Giới thiệu Ant là một công cụ thành phần đa nền tảng được phát triển dựa trên ngôn ngữ Java thuộc Apache Foundation. Trước khi xem xét chi tiết về Apache Ant, chúng ta hãy giải thích lý do tại sao việc hiểu rõ các công cụ xây dựng lại quan trọng ngay từ đầu. Xây dựng yêu cầu công cụ
Hiện tại tôi đang cố gắng học ocaml và muốn bắt đầu bằng một chương trình nhỏ tạo ra tất cả các tổ hợp bit: ["0","0","0"]["0","0","1"]["0","1","0"] ... v.v. Ý tưởng của tôi là đoạn mã sau: let
Tôi đang làm bài tập về nhà lớp C cơ bản và được giao nhiệm vụ sau... Viết mã cho một hàm nhận hai tham số theo giá trị (a và b) và có hai tham số khác theo tham chiếu (c và d). Tất cả các tham số đều là số kép.
Tôi muốn cung cấp một bản trình diễn nhanh về nội dung trang web của tôi và cách sử dụng nội dung đó đúng cách ngay khi người dùng truy cập vào trang của tôi. Tôi muốn sử dụng cửa sổ bật lên ở trên cùng cho mục đích trình bày. Ý tôi là những hộp thông tin nhỏ cung cấp cho người dùng thông tin về từng bước một. Có ai có thể giúp tôi cách nào không?
Giống như C, Java và các ngôn ngữ khác, JavaScript có thể sử dụng ba toán tử phán đoán logic &&, || và ! để thực hiện các phán đoán logic trên các giá trị Boolean. Không giống như C và Java, JavaScript sử dụng logic AND (&&
Trong JavaScript, cả toán tử == và === đều có thể được sử dụng để xác định xem hai giá trị có bằng nhau hay không; điểm khác biệt là nếu kiểu của hai giá trị đang được xác định không nhất quán, toán tử === sẽ trực tiếp trả về false, trong khi toán tử == sẽ thực hiện xác định sau khi chuyển đổi kiểu. Phán đoán chi tiết
Trong JavaScript, việc chuyển đổi một đối tượng thành boolean rất đơn giản: tất cả các đối tượng được chuyển đổi thành boolean đều là true; ngay cả một đối tượng như new Boolean(false) cũng được chuyển đổi thành boolean.
Trong quá trình phát triển Android, khi nhấn phím return mà không đáp ứng được các điều kiện kích hoạt, điều này cần phải được phát hiện. Đặc biệt là khi Hoạt động hiện tại cần gửi tin nhắn đến Hoạt động trước đó. Nghĩa là, nếu Activity1 nhảy tới Activity3,
Bối cảnh Khi hệ thống được yêu cầu khởi động một ứng dụng, trước tiên hệ thống sẽ kiểm tra xem lệnh hiện tại có phải là lệnh nội bộ hay không. Nếu không, hệ thống sẽ tìm kiếm trong thư mục hiện tại. Nếu vẫn không tìm thấy, hệ thống sẽ tìm kiếm trong đường dẫn được chỉ định bởi biến hệ thống Path. JDK (Bộ phát triển Java)
Tổng quan: Tôi muốn tạo một nền tảng công khai WeChat. Sau khi đọc mã mẫu để truy cập URL do WeChat cung cấp, tôi phát hiện ra rằng có một vấn đề mà tôi dường như luôn hiểu một nửa, đó là sử dụng $_GET trực tiếp trong lớp. Sau khi kiểm tra cẩn thận kiến thức trong lĩnh vực này, tôi thấy rằng kiến thức cơ bản của phần này trong PHP
Tôi là một lập trình viên xuất sắc, rất giỏi!