- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用随机森林计算了大约 1000 个数据点的邻近矩阵,但使用 sklearn 的 MDS 可视化该矩阵的结果非常奇怪且难以推理。
我用来处理数据的代码如下:
data_url = "https://raw.githubusercontent.com/ychennay/ychennay.github.io/master/KAG_conversion_data.csv"
# read data into memory and drop columns
data_string = requests.get(data_url).content
conversions_df = pd.read_csv(StringIO(data_string.decode("utf-8"))
)
ad_ids = conversions_df["ad_id"].tolist()
conversions_df = pd.read_csv(StringIO(data_string.decode("utf-8"))
).drop(columns=COLUMNS_TO_DROP)
conversions_df["bias"] = 1 # add a bias/intercept column
# define the target
y = conversions_df[TARGET]
# define features
X = conversions_df.loc[:, ~conversions_df.columns.isin(TARGET)]
# using dictionary convert columns into categorical data types
convert_dict = {'gender': "category",
'interest':"category",
"age": "category"}
conversions_df = conversions_df.astype(convert_dict)
dummified_data = pd.get_dummies(conversions_df, drop_first=True) # get dummy features for categorical variables
TARGET = ["Approved_Conversion"]
y = dummified_data[TARGET].values.reshape(-1)
X = dummified_data.loc[:, ~dummified_data.columns.isin(TARGET)]
conversions_df = conversions_df.astype(convert_dict)
经过此预处理后,我通过 RandomForestRegressor
运行它,尝试预测 Approved_Conversions
作为目标:
from sklearn.ensemble import RandomForestRegressor
B = 500
rf = RandomForestRegressor(n_estimators=B)
rf.fit(X, y)
final_positions = rf.apply(X)
proximity_matrix = np.zeros((len(X), len(X)))
# adapted implementation found here: h
# https://stackoverflow.com/questions/18703136/proximity-matrix-in-sklearn-ensemble-randomforestclassifier
for tree_idx in range(B):
proximity_matrix += np.equal.outer(final_positions[:,tree_idx],
final_positions[:,tree_idx]).astype(float)
# divide by the # of estimators
proximity_matrix /= B
distance_matrix = 1 - proximity_matrix
distance_matrix = pd.DataFrame(distance_matrix, columns=ad_ids, index=ad_ids)
但是,当我绘制 MDS 可视化时,可视化是完美的圆形,并且信息量不大。我预计数据中有一些连贯的簇与最相似的数据点组相对应:
from sklearn.manifold import MDS
# from sklearn.decomposition import PCA
mds = MDS(n_components=2,dissimilarity='precomputed')
reduced_dimensions = mds.fit_transform(distance_matrix)
如果我尝试将 MDS 与 proximity_matrix
结合使用,它或多或少具有相同的模式:
我对 MDS 不是最熟悉,但我无法解释为什么当大多数在线文章都建议使用该算法来可视化距离/相似度矩阵时,该算法给了我最差的结果。
我还验证了矩阵的实际结果是有意义的。例如,当我获得与特定 Facebook 广告最相似的广告(数据集是付费 Facebook 事件绩效)时,我得到的结果确实有意义(我输入的广告突出显示,最相似的结果显示在下面) :
任何人都可以给我一些指示,告诉我我可能做错了什么吗?如果我使用 PCA 减少维度,我会得到更“正常”的结果(至少方差在两个主成分中都扩展了):
最佳答案
我相信问题出在这一行reduced_dimensions = mds.fit_transform(distance_matrix)
您正在拟合模型,然后转换结果,而不是缩放输入数据并拟合模型。
我认为以这种方式进行操作会导致它被操纵成正态分布,在多个变量的情况下会生成钟形曲线或椭圆形。如果您尝试 mds.fit(distance_matrix)
会发生什么?
抱歉,因为这作为评论更有意义,我只是还不允许发表评论。
关于python - 为什么我的 sklearn MDS(多维缩放)可视化看起来如此无信息(完美的圆形和圆形)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56266787/
为了加速测试字谜字符串的快速输出行为,我 came up with基于质数的哈希方案——尽管它看起来像 I wasn't the first . 基本思想是将字母映射到素数,并计算这些素数的乘积。字母
我使用 Perfect Framework 创建了一个 Swift 3.0 服务器。一切都按预期进行得很好,但我正在尝试了解是否有更好的方法来做一些事情。 来自 iOS 背景,我知道总是在不同的线程中
我有一个固定大小的正方形 div,希望使用 CSS 在其中放置任意大小的图像,以便它在水平和垂直方向上都居中。横向很容易: .container { text-align: center } 对于垂直
程序员离不开终端,配置一个好看又好用的终端,可以提高工作效率. 本篇文章记录了使用 Oh My Zsh + PowerLevel9k + zsh插件 快速配置Ubuntu下默认终端的过程. 我们在
在请求处理程序中,处理例如获取 https://example.com/collections/1或 POSThttp://0.0.0.0:8080/collections 如何获取服务器地址 htt
我正在使用 perfect 和 SQLite司机和StORM作为连接器。我可以一一保存(创建)多行。为了使其更快,我想一次创建多行,我该怎么做? 最佳答案 从完美的 SQLite-StORM 和 Pe
这是我在这里的第一篇文章,所以我希望我提供所有正确的信息。 我目前正在开发一个简单的菜单应用程序,它有一个按钮控制数组(使用 MSDN 建议的控制数组的变通方法),我很难重新调整表单大小和将按钮居中。
在 androidplot XYPlot 中,如果您有较大的值(许多数字)和/或较大的字体大小,则 Y 轴上的刻度标签会被剪裁。这个(以及 X 轴上的类似问题)之前已经在这些问题中讨论过: Range
注意:我遗漏了不相关的代码 所以我目前正在研究 CCC 1996 P1,这个问题的全部目的是能够计算一个整数输入是完美数、不足数还是充数。我上面列出的代码可以工作,但是我认为它太慢了。该代码会迭代每个
我需要什么 我需要一个产生双射输出的算法。我有一个 31 位输入,需要一个伪随机 31 位输出。 我考虑过的 CRC 在其位宽内是双射的。 我查看了 Google 并找到了多项式,但找不到表格或算法。
我在 Ubuntu 14.04.1、clang-3.8 上使用 PerfectSwift我使用的是 Perfect,一切正常,但现在,我不能再编译了(但它可以在我的 mac 上编译) 错误日志是 /h
如果您对分表有以下痛点那么不妨试试我这边开源的框架sharding-core ,是否需要无感知使用分表组件,是否需要支持abp,是否需要支持自定义分表规则,是否需要支持自定义分表键,是否需要支持特定
我正在尝试确定我的 crc 与“ 理想 ”32 位 crc 的比较。 因此,我运行我的 crc 超过 100 万个完全随机的数据样本并收集了碰撞数量,我想将此数字与我可以从“ 理想 ”crc 中预期的
我正在开发一个项目,需要验证我的 URL,并偶然发现了以下正则表达式模式; /(((http|ftp|https):\/{2})+(([0-9a-z_-]+\.)+(aero|asia|biz|cat
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 4 年前。 Improve
我正在创建一个需要居中于中间的圆形网站。背景由围绕中心图像的圆圈组成。每当我以全屏(F11 快捷键)查看我的网站时,无论我的屏幕分辨率如何,它都完美居中。 如果我在没有全屏显示的情况下查看我的网站,我
所以我有一个网站,在开发人员工具中测试响应能力时看起来很棒,但在 iPhone 本身上实际测试时却没有居中并且看起来有些破烂。 什么会导致这种情况,如果我无法使用 iPhone(在我的 android
我有一个内部类,它扩展了 AbstractTableModel。 import javax.swing.table.AbstractTableModel; public class MyClass e
所以我正在使用 Perfect 服务器开发一个将值返回给客户端的应用程序。目前,它需要从另一个 API 下载一些数据,对其进行处理,然后将其发送给客户端。 然而,出于某种原因,它在 OSX 中编译良好
我有一些 CSS 按钮。 “按钮”效果是通过在 anchor 标记中使用固定大小的 元素来完成的,并且 css 规则以 a span:active 、 a span:hover 的形式显示按钮状态。
我是一名优秀的程序员,十分优秀!