标签: data-science

绘制高维数据的决策边界

我正在构建二进制分类问题的模型,其中我的每个数据点都是300维(我使用300个特征).我正在使用sklearnPassiveAggressiveClassifier.该模型表现非常好.

我希望绘制模型的决策边界.我怎么能这样做?

为了了解数据,我使用TSNE在2D中绘制它.我通过两个步骤减少了数据的维度 - 从300到50,然后从50减少到2(这是一个常见的推荐).以下是相同的代码段:

from sklearn.manifold import TSNE
from sklearn.decomposition import TruncatedSVD

X_Train_reduced = TruncatedSVD(n_components=50, random_state=0).fit_transform(X_train)
X_Train_embedded = TSNE(n_components=2, perplexity=40, verbose=2).fit_transform(X_Train_reduced)

#some convert lists of lists to 2 dataframes (df_train_neg, df_train_pos) depending on the label - 

#plot the negative points and positive points
scatter(df_train_neg.val1, df_train_neg.val2, marker='o', c='red')
scatter(df_train_pos.val1, df_train_pos.val2, marker='x', c='green')
Run Code Online (Sandbox Code Playgroud)

数据图

我得到了一个体面的图表.

有没有办法可以为这个图添加一个决策边界,它代表我模型在300昏暗空间中的实际决策边界?

python plot machine-learning scikit-learn data-science

15
推荐指数
1
解决办法
5304
查看次数

如何使用Python中的面向对象编程构建机器学习项目?

我观察到静态和机器学习科学家在使用Python(或其他语言)时通常不会遵循ML /数据科学项目的OOPS.

主要是因为在开发用于生产的ML代码时,缺乏对oops中最佳软件工程实践的理解.因为他们大多来自数学和统计学教育背景而不是计算机科学.

ML科学家开发临时原型代码和另一个软件团队使其生产就绪的日子在业界已经结束.

在此输入图像描述

问题

  1. 我们如何使用OOP为ML项目构建代码?
  2. 是否每个主要任务(如上图所示)如数据清理,特征转换,网格搜索,模型验证等都应该是一个单独的类?ML的推荐代码设计实践是什么?
  3. 任何好的github链接都有很好的代码可供参考(可能是一个写得很好的kaggle解决方案)
  4. 应每类像数据清洗有fit(),transform(),fit_transform()功能为每一个过程是怎样的remove_missing(),outlier_removal()?当这样做时,为什么scikit-learn BaseEstimator通常会被继承?
  5. 生产中ML项目的典型配置文件的结构应该是什么?

python oop machine-learning code-design data-science

15
推荐指数
1
解决办法
1498
查看次数

如何更新之前运行的 MLFlow?

我想更新以前使用 MLFlow 完成的运行,即。更改/更新参数值以适应实现中的更改。典型用例:

  • 使用参数 A 记录运行,并且稍后记录参数 A 和 B。使用其默认值更新先前运行的参数 B 的值将很有用。
  • “专门化”一个参数。使用布尔标志作为参数来实现模型。更新实现以采用字符串代替。现在我们需要更新之前运行的参数值,以使其与新行为保持一致。
  • 更正先前运行中记录的错误参数值。

丢弃整个实验并不总是那么容易,因为我需要保留以前的运行用于统计目的。我也不想只为单个新参数生成新实验,以保留单个运行数据库。

做这个的最好方式是什么?

logging data-science mlflow

15
推荐指数
1
解决办法
9904
查看次数

使用Python从文本中删除非英语单词

我正在对python进行数据清理练习,我正在清理的文本包含我想删除的意大利语单词.我一直在网上搜索我是否可以使用像nltk这样的工具包在Python上执行此操作.

例如给出一些文字:

"Io andiamo to the beach with my amico."
Run Code Online (Sandbox Code Playgroud)

我想留下:

"to the beach with my" 
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?任何帮助将非常感激.

python data-cleaning data-science

14
推荐指数
2
解决办法
2万
查看次数

Macbook m1 和 python 库

新的 macbook m1 适合数据科学吗?

数据科学 python 库,如 pandas、numpy、sklearn 等是否在 macbook m1(Apple Silicon)芯片上工作,与上一代基于英特尔的 macbook 相比有多快?

python pandas scikit-learn data-science apple-silicon

14
推荐指数
1
解决办法
2万
查看次数

安装 CUDA Windows 10

我正在尝试安装 CUDA 工具包,以便能够在我的个人计算机中使用 Thundersvm。但是,我一直在 GUI 安装程序中收到以下消息:“您已经安装了较新版本的 NVIDIA Frameview SDK”

我在 CUDA 论坛中读到,这很可能是由于安装了 Geforce Experience(我已经安装)所致。所以我尝试从程序和功能窗口面板中删除它。但是我仍然遇到错误,所以我猜测“Nvidia Corporation”文件夹没有被删除。

在同一问题中,他们还建议执行自定义安装。但是,我找不到有关如何自定义安装 CUDA 工具包的任何信息。如果有人可以解释如何进行此自定义安装或安全地删除以前的驱动程序,我将不胜感激。我想过使用 DDU,但我读到有时它实际上可能会导致麻烦。

windows cuda driver data-science

14
推荐指数
1
解决办法
7186
查看次数

TensorFlow 对象检测 TF-TRT 警告:找不到 TensorRT

几周来我一直在尝试解决这个问题。我使用 Google Colaboratory是因为我的 MacBook Pro 配备了TensorFlow 不支持的Apple 芯片。这是具有评论权限的 Google Colaboratory 链接。 点击这里

我尝试过使用旧版本的 TensorFlow,但没有任何改变,我已准备好 TensorFlow 记录和训练管道文件。

python object-detection data-science tensorflow tensorflow2.0

14
推荐指数
1
解决办法
7万
查看次数

在张量因子分解后重新构成张量

我正在尝试使用python库scikit-tensor分解3D矩阵.我设法将我的Tensor(尺寸为100x50x5)分解为三个矩阵.我的问题是如何使用Tensor分解产生的分解矩阵再次组合初始矩阵?我想检查分解是否有任何意义.我的代码如下:

import logging
from scipy.io.matlab import loadmat
from sktensor import dtensor, cp_als
import numpy as np

//Set logging to DEBUG to see CP-ALS information
logging.basicConfig(level=logging.DEBUG)
T = np.ones((400, 50))
T = dtensor(T)
P, fit, itr, exectimes = cp_als(T, 10, init='random')
// how can I re-compose the Matrix T? TA = np.dot(P.U[0], P.U[1].T)
Run Code Online (Sandbox Code Playgroud)

我正在使用scikit-tensor库函数cp_als提供的规范分解.此外,分解矩阵的预期维数是多少?

python math scikits data-science

13
推荐指数
1
解决办法
660
查看次数

model.LGBMRegressor.fit(x_train, y_train) 和 lightgbm.train(train_data, valid_sets = test_data) 有什么区别?

我尝试了两种实现轻型 GBM 的方法。期望它返回相同的值,但它没有。

我想lgb.LightGBMRegressor()lgb.train(train_data, test_data)将返回相同的精度,但它没有。所以我想知道为什么?

数据打断函数

def dataready(train, test, predictvar):
    included_features = train.columns
    y_test = test[predictvar].values
    y_train = train[predictvar].ravel()
    train = train.drop([predictvar], axis = 1)
    test = test.drop([predictvar], axis = 1)
    x_train = train.values
    x_test = test.values
    return x_train, y_train, x_test, y_test, train
Run Code Online (Sandbox Code Playgroud)

这就是我分解数据的方式

x_train, y_train, x_test, y_test, train2 = dataready(train, test, 'runtime.min')
train_data = lgb.Dataset(x_train, label=y_train)
test_data = lgb.Dataset(x_test, label=y_test)
Run Code Online (Sandbox Code Playgroud)

预测模型

lgb1 = LMGBRegressor()
lgb1.fit(x_train, y_train)
lgb = lgb.train(parameters,train_data,valid_sets=test_data,num_boost_round=5000,early_stopping_rounds=100)
Run Code Online (Sandbox Code Playgroud)

我希望它大致相同,但事实并非如此。据我了解,一个是助推器,另一个是回归器?

python machine-learning data-science lightgbm

13
推荐指数
1
解决办法
4061
查看次数

删除时间序列中异常值的有效方法

我正在寻找有效的方法来删除数据中的异常值。我尝试了在 StackOverflow 和其他地方找到的几种解决方案,但没有一个对我有用(应该在样本数据中检测并删除 1993 年 6 月、1994 年 8 月和 1995 年 3 月的 4 个高值 21637、19590、21659 和 200000发布在这篇文章的末尾)。任何建议将不胜感激!

这是我到目前为止测试过的:

数据概览

  1. 如何从数据集中删除异常值

3 个异常值仍然存在,并且时间序列末尾的许多合法高值已被删除。

y <- dat$Value
y_filter <- y[!y %in% boxplot.stats(y)$out]
plot(y_filter)
Run Code Online (Sandbox Code Playgroud)

  1. 计算 R 中的异常值

与第一种方法类似的问题

FindOutliers <- function(data) {
  data <- data[!is.na(data)]
  lowerq = quantile(data)[2]
  upperq = quantile(data)[4]
  iqr = upperq - lowerq #Or use IQR(data)
  # we identify extreme outliers
  extreme.threshold.upper = (iqr * 1.5) + upperq
  extreme.threshold.lower = lowerq - (iqr * 1.5)
  result <- which(data …
Run Code Online (Sandbox Code Playgroud)

r time-series outliers data-science

13
推荐指数
3
解决办法
1622
查看次数