自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

但行好事,莫问前程

专注推荐系统,机器学习,大数据技术

  • 博客(121)
  • 资源 (19)
  • 问答 (4)
  • 收藏
  • 关注

原创 参数模型VS非参数模型

          我们在机器学习中学习到的很多的算法模型,都可以分为参数(parametric)和非参数(nonparametric)。理解这两个概念,并知道如何区分哪些是非参数,哪些是参数,对于你深入的理解机器学习中的算法,熟悉各算法的优缺点,以及如何在实践中选择合适的算法模型都会有帮助。所以,...

2019-12-19 23:23:18 2886

原创 KL散度和交叉熵

在学习机器学习的过程中,我们经常会碰到这两个概念:KL散度(kl divergence)以及交叉熵,并且经常是同时出现的。很多同学对这两个概念都理解的不是很透彻,造成经常会搞混他们两者。本文最主要的目的就是带大家深入理解这两个重要的概念,同时搞懂,区别的理解他们,保证以后不会再搞混它们。如果你学过信息论,区分两者就更加容易:KL散度就是相对熵,参考资料...

2019-12-10 23:17:48 1876

原创 详解RankNet原理及实践

0.pair-wise rank简介         pair-wise rank的主要思想是把排序形式化为成对分类(pairwise classification)或成对回归(pairwise regression)问题。和point-wise 最大的区别是,pair-wise的样本是有一对item的相对关系组成的。例如对于某个用户u, 物品i...

2018-11-11 14:43:42 7178 2

原创 用两张图帮你入门机器学习

什么是机器学习?      深度学习的成功使得人工智能,机器学习受到前所未有的关注。相关岗位的薪资的水涨船高也吸引了大批软件开发相关的人奋不顾身的转机器学习相关应用的岗位(广告策略,推荐算法,图像识别等)。这同样催生了机器学习相关教育培训的无比火热。但老实说,对于几乎没有什么基础的人来说,想通过各种所谓高

2018-11-03 15:50:35 496

原创 你是哪种数据科学家?--《Analyzing the Analyzers》阅读笔记

    今天花了点时间看了一本小册子《Analyzing the Analyzers:An Introspective Survey of Data Scientists and Their Work》。书是2013年出版的,非常薄:加上封面啥的,也就39页。书主要讲了:在当今时代,数据科学家很火。但是很多人,甚至包括有相关技术背景的人,都对数据科学家存在...

2018-06-02 15:07:51 683

原创 机器学习中的方差和偏差

最近补充看了一些偏差-方差的资料。前面也做了两篇相关的笔记(翻译)了。感兴趣的,可以先看看理解 Bias 与 Variance 之间的权衡机器学习速成课(part 4)–偏差和方差困境概念&意义       为什么需要理解方差和偏差?         偏差和...

2018-04-23 23:23:01 1200

翻译 机器学习速成课(part 4)--偏差和方差困境

这里有一个谜题:     下列序列的下一个数值是?                 1,3,5,7,?       一个正确的解:217314 是不是感觉不可置信?正常人脑海蹦出来的第一个答案应该是‘9’。但‘217...

2018-04-19 23:35:10 2497

原创 推荐系统经典论文

下面提供的论文,可以说基本都是经典中的经典。读完这些论文,相信对推荐系统的认识肯定会有质的飞越:(不够再找我。O(∩_∩)O~)综述类:1、Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions。最经典的推荐算法综述2、C...

2018-03-08 23:06:36 10124 11

翻译 使用Spark cache来保障正确的一个例子

我们通常以为Spark cache就是一个用来优化spark程序性能的。本文举的例子会告诉你,cache的作用有时候可能比提高性能更重要。(原文标题:Using Spark’s cache for correctness, not just performance)在学习Apache Spark的时候,我们被告知RDD是不可变的。但是,我这里要将到一个和这点冲突的一个小程序。这个Scala程序...

2018-03-03 16:14:19 4995 1

原创 《Statistical Methods for Recommender Systems》--第五章(2)一般系统架构

下图是一个典型的web推荐系统的架构: 主要包含4个组块:    1. Recommendation service –推荐服务;从web服务器获得推荐请求,然后返回推荐物品;   2.Storage systems–存储系统;主要存储用户特征(以及潜在因子)、物品特征(和因子)、模型的参数。并且能够通过有效的索引检索到物品。 ...

2018-03-03 10:17:21 577

原创 决策树基础知识点整理

1、基本算法流程决策树的构造是一个递归的过程,有三种情形会导致递归返回:(1) 当前结点包含的样本全属于同一类别,这时直接将该节点标记为叶节点,并设为相应的类别;(2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分,这时将该节点标记为叶节点,并将其类别设为该节点所含样本最多的类别;(3) 当前结点包含的样本集合为空,不能划分,这时也将该节点标记为叶节点,并将其类别设为父节点中所含...

2018-02-24 22:36:24 1215

原创 《Statistical Methods for Recommender Systems》--第五章(1)推荐问题设定和系统架构

可以将网站分为以下四类,对应每类,再选择推荐模型的时候会有各自的考虑:     1. general portals;也就是综合的门户网站,比如雅虎,新浪等;     2. Personal portals;个性化网站;应该指的是类似个人博客一类的网站    3. Domain-specific sites;领域特定的网站...

2018-02-08 22:07:24 451

原创 《Statistical Methods for Recommender Systems》阅读笔记--第4章(1)评估方法--数据切分及线上评估方法

评估主要分两种: ● 部署前的离线评估。关于这部分的指标大家可以参考我的另外两篇博客: 1)http://blog.csdn.net/allenalex/article/details/51318270 2)http://blog.csdn.net/allenalex/article/details/78161915 ● 部

2018-02-04 16:08:17 543

翻译 《Statistical Methods for Recommender Systems》阅读笔记--第三章(2)推荐系统中的EE问题

这章节提到一种解决诸如采用的训练数据由于时间影响(比如用早上的数据,训练后预测晚上的;或者使用历史数据)带来偏差的问题的方法——Kalman filter。具体参考《Applied Bayesian Forecasting and Time Series Analysis》。这块自己研究不深,工作中也没有太过在意,不过最近团队有同事提出了这个问题。后面考虑研究下。     对用户聚类分群,然后在

2018-02-04 12:18:35 1031

原创 《Statistical Methods for Recommender Systems》阅读笔记--第三章(1)--EE问题

插一句:这个问题,我之前写过三篇相关的博客(有一篇竟然不知道怎么被不小心覆盖了。悲伤。。。),感兴趣的可以先参考:    ● http://blog.csdn.net/allenalex/article/details/78220926    ● http://blog.csdn.net/allenalex/article/details/78242068    当然,这本书里的这一

2018-01-23 23:18:33 630

原创 《Statistical Methods for Recommender Systems》阅读笔记--第二章

经典算法通常可利用的信息有一下几种: 1)物品的相关信息 2)用户的相关信息 3)用户和物品的交互信息利用前两种信息的经典算法包括: 1、基于用户人口统计属性的推荐(最近邻推荐) 2、基于内容的推荐这两种推荐都是需要将用户和物品转换成特征向量表示。 然后基于向量来计算两两之间(用户-用户,物品-物品,用户-物品)相似度来实现推荐。这种在书中,作者称之为无监督方

2018-01-21 14:43:49 657

原创 《Statistical Methods for Recommender Systems》阅读笔记---第一章

关于推荐系统的书籍目前市面上常见的有这三本:《推荐系统实践》、《推荐系统》(《Recommender Systems:An Introduction》)和《推荐系统:技术、评估及高效算法》(Recommender Systems Handbook)。《Statistical Methods for Recommender Systems》这本书是自己无意间发现的。关于推荐系统的资料虽然众多(有想要

2018-01-20 22:19:28 1279 5

转载 理解 Bias 与 Variance 之间的权衡

有监督学习中,预测误差的来源主要有两部分,分别为 bias 与 variance,模型的性能取决于 bias 与 variance 的 tradeoff ,理解 bias 与 variance 有助于我们诊断模型的错误,避免 over-fitting 或者 under-fitting.   在统计与机器学习领域权衡 Bias 与 Variance 是一项重要的任务,因为他可以使得用有限训练数据训

2017-12-31 09:37:00 3804

翻译 如何通过分区来提高spark的性能(java代码)

RDD是Spark上最重要的概念。可以将RDD理解为是包含很多对象的集合,这些对象实质上是存储在不同的分区上的。当在RDD上执行计算时,这些分区能够并行执行。通过修改分区,我们能够有效的提高spark job的性能。下面通过一个简单的例子来说明下。 举例:找素数 假如我们想找出200万以内的所有素数。简单的方法是,我们可以先找出所有的非素数。然后对全部数字,执行清除所有这些非素数。剩下的就是素

2017-10-22 18:29:50 1025

原创 bandit算法(3)--UCB算法

引言前面已经介绍了两种bandit算法—ϵ\epsilon-greedy算法和softmax算法。现在我们来总结下这两种算法的共有属性:两种算法在每一轮选择时,默认都是选择到目前为止最好的臂;除此之外,算法会尝试去探索一些目前看起来不是最好的臂:       -ϵ\epsilon-greedy算法探索的时候完全是随机的。       -softmax算法探索是基于到当前时刻臂的收益

2017-10-15 17:22:04 23262 3

原创 基于矩阵分解推荐算法之交替最小二乘法(ALS)--附实现代码

本文假定读者已经对以下内容有基本了解:      1) 协同过滤算法      2)基于模型的协同过滤算法;主要是基于矩阵分解的方法。知道如何将推荐和矩阵分解联系起来。      3)对矩阵分解有基本的认识本文的目的:      本人的博客一直强调应用,对于任何的算法,会侧重对它的工程应用的介绍。相关的原理,推到演练不会涉及太深。所以本文也不会涉及太多这些方面的内容。

2017-10-13 17:22:07 5467 3

原创 bandit算法(1)--epsilon-Greedy Algorithm(附代码)

简述     epsilon-Greedy算法(ϵ\epsilon-贪婪算法)算是MBA(Multiarmed Bandit Algorithms)算法中最简单的一种。因为是MBA算法介绍的第一篇,所以在这里还是先简单说明下MBA。当然,要解释MBA,首先就得EE问题(Explore-Exploit dilemma)。 什么是EE问题呢? 这两个”E”,其中一个代表“exploit”,中文可译作“

2017-10-12 23:00:43 22120

原创 推荐系统排序(Rank)评价指标总结

1.Mean Average Precision (MAP)AP=∑nij=1P(j).yi,j∑nij=1yi,jAP= \dfrac{\sum_{j=1}^{n_i}P(j).y_{i,j}}{\sum_{j=1}^{n_i}y_{i,j}} 其中, yi,jy_{i,j}:排序中第j个元素对于查询i是否是相关的;相关为1,不相关为0。 P(j)=∑k:πi(k)≤πi(j)

2017-10-05 17:07:36 24592

原创 推荐系统冷启动常用解决方案

本文主要基于博主的实际经验,简单介绍几种推荐系统实践中常用的几种解决冷启动的方案。每种方案尽量提供主要的资料,但不展开详细介绍,有需要的可以自己查看相关资料或google。 此外,本文只针对用户的冷启动问题,不涉及物品的冷启动。 我们通常所说的用户冷启动问题是指系统中没有用户的行为数据,但并不表示没有其他数据。有哪些数据可以用来解决冷启动呢?系统内的数据通常包括用户的一些注册信息,比如用户的年龄

2017-09-07 23:21:45 6905

原创 scikit-learn中的SVM使用指南

本文主要包括以下内容: 1、 sklearn三个SVM分类器(sklearn.svm.LinearSVC,sklearn.svm.SVC,sklearn.svm.NuSVC)的参数详解 2、SVM算法调优的一些建议 3、实验sklearn.svm.LinearSVCpenalty取值说明: l1-SVM: l2-SVM:区别就是优化函数中的惩罚项中是松弛变量累加还是松弛变量平

2017-09-04 20:03:30 5571 2

原创 SVM入门(2)--对偶

从SVM入门(1)–优化目标的来龙去脉 我们已经知道目标函数: 对于这样的凸二次规划问题有现成的优化包可进行求解。此外,这个问题有它的特殊结构,通过 Lagrange Duality 变换到对偶变量 (dual variable) 的优化问题之后,可以找到一种更加有效的方法来进行求解。这种方法比直接使用通用的 QP 优化包进行优化要高效得多。 那么,什么是拉格朗日对偶性?简

2017-08-30 23:22:18 516

原创 SVM入门(1)--优化目标函数的来龙去脉

在线性可分的场景下,SVM的优化目标函数为: 如果是刚接触SVM,你可能不知道这个目标函数,当然你也不知道这个w是什么,后面的这个约束条件什么意思。没关系,你现在只要记着,这个就是在线性可分类场景下,SVM最终要优化的目标函数。显然,这个目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。对于这样的二次规划问题,有现成的二次规划优化包来求解。 现在,

2017-08-29 23:17:10 8490 2

原创 文本分类中的降维方法总结

引言 人们通常采用向量空间模型来描述文本向量,但是如果直接用分词算法和词频统计方法得到的特征项来表示文本向量中的各个维,那么这个向量的维度将是非常的大。 这种未经处理的文本矢量不仅给后续工作带来巨大的计算开销,使整个处理过程的效率非常低下,而且会损害分类、聚类算法的精确性,从而使所得到的结果很难令人满意。 所以,在文本分类中,降维有时候是非常关键的一环。为什么需要降维?也就降维有什么好处?

2017-08-18 11:16:11 22328

原创 用一个例子详解主题敏感(topic-sensitive)pagerank算法流程

本文根据主题敏感pagerank出处的论文《Topic-Sensitive PageRank》中的计算流程,尝试通过列举一个简单的例子来说明主题敏感pagerank的流程。 希望能够帮助有需要的同学。如算法流程有误,请多多指教。

2017-08-14 23:06:36 3919 1

原创 推荐算法的可扩展性之hadoop篇(待续...)

我们都知道,大多数的推荐算法都是单机版的。如果不进行任何处理是不能够分布式执行,也就不能充分利用像hadoop这样的分布式计算集群。这严重限制了 推荐算法的实际应用。比如协同过滤,像亚马逊、天猫这些包含大量用户、大量物品及大量行为的平台,用户-物品矩阵巨大。要实现协同过滤,时间复杂度不说,就是存储,单机的也没法 搞定。所以,实现分布式的推荐算法,充分利用集群的资源就变得非常的必要。

2017-08-01 22:00:44 4110

原创 《Mining Large Streams of User Data for Personalized Recommendations》笔记

论文发表年份:2012 主要内容:1、当前在个性化推荐中如何使用数据挖掘技术 2、从 Netflix竞赛中获得的经验; 3、Netflix竞赛中主要使用的个性化推荐技术 4、展望相对于数据挖掘技术,还存在很多可能对推荐效果影响更大的问题。比如用户交互设计等。但这些不属于本文关注范围。

2017-08-01 21:27:31 721

原创 基于的朴素贝叶斯的文本分类(附完整代码(spark/java)

本文主要包括以下内容: 1)模型训练数据生成(demo) 2 ) 模型训练(spark+java),数据存储在hdfs上 3)预测数据生成(demo) 4)使用生成的模型进行文本分类。

2017-06-20 23:52:25 7226 2

原创 协同过滤算法概述

主要内容:不同算法类的简单介绍,各自的适用场景以及面临的挑战; 和其他算法的比较。一.简介协同过滤是最早提出,同时也是研究的最多,实际应用也最多的一种推荐技术。对于协同过滤算法的分类,主要有两种分类方式。有学者考虑算法是否基于基本概率模型,将协同过滤算法分为非概率性算法和概率性算法。还有将算法分为基于内存的协同过滤算法和基于模型的协同过滤算法。本文采用前一种来阐述。二.非概率性算法基于内存的协

2017-05-26 19:18:55 2923

翻译 机器学习法则:(谷歌)机器学习工程最佳实践(译)

本文来源:《Rules of Machine Learning:Best Practices for ML Engineering》作者:Martin Zinkevich google 研究科学家。这是Martin Zinkevich在NIPS 2016 Workshop 分享的谷歌机器学习实践的四十三条法则。 术语实体(Instance):要对其进行预测的事物标签(Label):预测任务的结果

2017-05-07 23:08:04 3392

翻译 主题建模入门指南(python)

简介所谓分析,通常都是指从数据中获取“信息”。近来,随着数据迅猛增长——其中绝大多数数据是非结构的,要想获得相关想要的信息变成越来越困难。庆幸地是,与此同时出现了一些强大的方法来帮助我们从这些数据中抽取出我们想要的信息。文本挖掘领域中这样相关的一种技术是主题建模。正如其名,主题建模能够从一个文本对象中自动识别它的主题,并且发现隐藏的模式。这些能够帮助做出更好的决策。主题建模和那些基于规则的文本挖掘方

2017-02-22 22:33:55 6953

原创 中文文本的字数统计(不包括标点符号且考虑英文/数字序列)

#-*-coding=utf-8 -*-"""统计一遍中文文章的字数(不包括标点符号,考虑英文/数字序列(不拆分成当个字母或数字)"""import reimport jiebac = "\\"text = """然而,在参加string聚会或者出席典礼时,很多人会抱怨自己挑不出一件拿得出手的裙子。望着摆满了鞋子的鞋架,发觉自己花了这么多钱,却选不出一双满意的鞋子。梳妆台上摆满了化妆品

2017-02-15 15:54:21 5741

原创 python字符串过滤性能比较

总共比较5种方法。直接看代码:import randomimport timeimport osimport stringbase = string.digits+string.punctuationtotal = 100000def loop(ss): """循环""" rt = '' for c in ss: if c in '0123456789

2017-02-11 09:21:37 2582

原创 Python文本操作相关模块

linecache——通过使用缓存在内部尝试优化以达到高效从任何文件中读出任何行。 主要方法: linecache.getline(filename, lineno[, module_globals]):获取指定行的内容 linecache.

2017-02-07 13:35:19 1037

翻译 Python文本处理之按行处理大文件

以行的形式读出一个文件最简单的方式是使用文件对象的readline()、readlines()和xreadlines()方法。 Python2.2+为这种频繁的操作提供了一个简化的语法——让文件对象自身在行上高效迭代(这种迭代是严格的向前的)。 为了读取整个文件,可能要使用read()方法,且使用字符串的split()来将它拆分WEIGHT行或其他块。下面是一些例子: >>> for

2017-02-06 11:28:54 9138

翻译 __slots__为什么能节省内存?

注:本文是对http://www.datadependence.com/2016/07/pythonic-code-video-series-slots/ 的翻译。说是翻译,但不会逐字逐句翻译。宗旨是回答标题的问题,所以也会增加自己的理解。 很多人都看过Oyster.com的这篇相当当的文章: SAVING 9 GB OF RAM WITH PYTHON’S _SLOTS_ 为了能够理解_

2017-01-10 23:06:27 1696

java网络编程

《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK1.4和1.5(现在已命名为J2SE5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)等各方面的内容

2015-02-10

java并发编程实战

《Java并发编程实战》深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。

2015-02-10

Git权威指南

Git权威指南。不错的资源,分享了。希望大家喜欢

2015-02-10

datatools.connectivity

在eclipse上下载的DTP-SDK里面没有:org.eclipse.datatools.connectivity.services 这个jar里面就有了。 此外还包括: org.eclipse.datatools.connectivity.drivers, org.eclipse.datatools.connectivity.exceptions, org.eclipse.datatools.connectivity.internal

2014-11-02

k-means聚类(使用数据集:iris)

使用java语言在数据集iris上实现k-means聚类

2013-12-29

你必须知道的495个C语言问题完整版本

你必须知道的495个C语言问题完整版本!!!

2013-12-05

C语言名题精选百则技巧篇

C语言名题精选百则技巧篇收集了100则c语言设计题。共9类。不可多得的学习c语言的资料

2013-12-05

Windows程序设计(第5版)-配套代码

Windows程序设计(第5版)-北京大学出版社-2003年-配套代码

2013-12-05

Linux 从入门到精通

本书对Linux操作系统及其编程作了整体的介绍,以支持用于开发软件的公开源码模型。对内存管理、进程及其通信机制、PCI、内核模块编程及内核系统结构作了详细的解释,且附有很多程序代码实例。对深入研究Linux下的编程有很大的帮助。

2012-04-29

嵌入式系统设计综述

全面阐述嵌入式系统的要素 „ 嵌入式系统软硬件设计基础 „ 介绍嵌入式系统最新设计理念 „ 项目开发流程与自由实验

2012-04-29

嵌入式系统开发圣经

详细的理论讲解,让你全面了解当前嵌入式开发系统的发展趋势。 以信息家电、智能型手机、PDA产品为出发点,广泛深入地分析相关的嵌入式系统技术。 适用于产品主管、系统设计分析人员及欲进入该领域的工程师。 是一本开发嵌入式系统产品必备的入门圣经,进入嵌入式系统领域的宝典。

2012-04-21

编写自己的Shell解释器

向大家介绍shell 的概念和基本原理,并且在此基础上动手做一个简 单shell 解释器。同时,还将就用到的一些 linux 环境编程的知识做一定讲解。

2012-04-20

嵌入式系统设计与系统开发

基于ARM架构的嵌入式微处理器及易于学习开发的uC/OS嵌入式操作系统为核心,介绍了嵌入式系统的原理,设计方法及实例编程开发

2012-04-20

Linux核心手册

没有软件,计算机只是一堆发热的电子元件。如果说硬件是计算机的心脏,则软件就是它的灵魂。操作系统是允许用户运行应用程序的一组系统程序。操作系统将系统的硬件抽象,呈现在用户和应用程序之前的是一个虚拟的机器。是软件造就了计算机系统的特点。大多数 PC 可以运行一到多个操作系统,而每一个操作系统从外观和感觉上都大不相同。 Linux 由不同功能的部分构成,这些部分总体组合构成了 Linux 操作系统。

2012-04-20

Windows CE开发初步

Windows CE操作系统支持很多特性,并能被很多一系列不同的CPU编译。她支持多线程,包含多种可选择的GUI。诸如她的堂兄弟一样,Windows CE也具有台式计算机操作系统的特性,所以开发人员无需花太多的时间就可以很容易地进行基于Windows CE的软件开发。

2012-04-20

C语言程序实例

非常适合考计算机2级C的同学! 例: 题目:学习putpixel画点。 1.程序分析:             2.程序源代码: #include "stdio.h" #include "graphics.h" main() { int i,j,driver=VGA,mode=VGAHI; initgraph(&driver;,&mode;,""); setbkcolor(YELLOW); for(i=50;i<=230;i+=20)  for(j=50;j<=230;j++)  putpixel(i,j,1); for(j=50;j<=230;j+=20)  for(i=50;i<=230;i++)  putpixel(i,j,1); } ==============================================================

2012-04-19

arm入门笔记

为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所以叫笔记而不是文章,是因为它们完全是本人个人学习经验的总结,而这些经验都来自于其他前辈的无私奉献,在这里对这些乐于发表自己经验的前辈致以由衷的感谢!现在我把这些前辈的文章经过自己的理解写出来一方面是对于他们的尊重,另一方面也希望觉得本人的笔记有参考意义的朋友把这种精神继续传下去。

2012-04-18

复杂网络链路预测的研究现状及展望

链路预测:已知的网络节点以及网络结构,预测网络中尚未产生连边的两个节点之间产生链接的可能性

2012-04-18

eclipse开发入门

本文为您提供关于 Eclipse 平台的概述,包括其起源和体系结构。本文首先简要讨论 Eclipse 的开放源代码性质及其对多种编程语言的支持,然后通过一个简单的程序例子展示 Java 开发环境。本文还将考查以插件扩展形式可用的一些软件开发工具,并展示一个用于 UML 建模的插件扩展。

2012-04-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除