标签: data-science

在 poLCA R 包中寻找最佳 LCA 模型

我正在使用 PoLCA R 包应用 LCA 分析,但三天后分析没有结果(它还没有找到最好的模型),偶尔它会给出以下错误:“警报:迭代完成,最大可能性未找到”。所以我在 35 潜班取消了这个过程。我正在分析 16 个变量(所有变量都是分类变量)和 36036 行数据。当我在 Boruta 包中测试 16 个变量的变量重要性时,所有 16 个变量结果都一样重要,所以我使用 poLCA 在 LCA 分析中使用了所有 16 个变量。我应该走哪条路?我应该使用另一种聚类方法(例如 k-modes)来聚类此数据集中的分类变量吗?我使用了 500 次迭代和 nrep=10 模型估计数的参数。我用来在 LCA 中找到最佳模型的 R 脚本和输出之一如下:

    for(i in 2:50){
    lc <- poLCA(f, data, nclass=i, maxiter=500, 
                tol=1e-5, na.rm=FALSE,  
                nrep=10, verbose=TRUE, calc.se=TRUE)
    if(lc$bic < min_bic){
        min_bic <- lc$bic
        LCA_best_model<-lc
    }
}
Run Code Online (Sandbox Code Playgroud)

================================================== ======== 适合 35 个潜在类:====================================== ==================== 观察次数:36036
估计参数数量:2029 剩余自由度:34007
最大对数似然:-482547.1
AIC(35):969152.2 BIC(35):986383 G^2(35):233626.8(似然比/偏差统计)
X^2(35):906572555(卡方拟合优度)
警报:迭代完成,未找到最大似然

for-loop r cluster-analysis categorical-data data-science

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

sklearn StandardScaler,不允许直接变换,我们需要 fit_transform

fit_transform 和 transform 有什么区别?为什么转换不直接起作用?

from sklearn.preprocessing import StandardScaler

 X_scaler = StandardScaler()
 X_train = X_scaler.fit_transform(X_train)
 X_test = X_scaler.transform(X_test)
Run Code Online (Sandbox Code Playgroud)

如果直接转换它会给出以下错误

NotFittedError:此 StandardScaler 实例尚未安装。在使用此方法之前,使用适当的参数调用 'fit'。

machine-learning python-3.x scikit-learn data-science

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

我如何绘制来自熊猫的 k 均值聚类?

我正在尝试对来自不同公司的产品销售的数据进行聚类。请注意,我将列中的任何字符串映射到数值,以便我可以使用 k 均值聚类。我有以下代码,我在我的数据上做 k-means

FeaturesDf=FeaturesDf[['company_value','Date_value','product_value']]
# Convert DataFrame to matrix
mat = FeaturesDf.values
#Using sklearn
km = sklearn.cluster.KMeans(n_clusters=5)
km.fit(mat)
# Get cluster assignment labels
labels = km.labels_
# Format results as a DataFrame
results = pd.DataFrame(data=labels, columns=['cluster'], index=orderFeaturesDf.index)
Run Code Online (Sandbox Code Playgroud)

我如何绘制一个 k 均值聚类图?我试过

plt.scatter(results.index,results['cluster'], c='black')
plt.plot(results)
Run Code Online (Sandbox Code Playgroud)

但是有没有更好的方法来做到这一点?

python k-means pandas data-science

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

Wor2vec 微调

我需要微调我的 word2vec 模型。我有两个数据集,data1data2.

到目前为止我所做的是:

model = gensim.models.Word2Vec(
        data1,
        size=size_v,
        window=size_w,
        min_count=min_c,
        workers=work)
model.train(data1, total_examples=len(data1), epochs=epochs)

model.train(data2, total_examples=len(data2), epochs=epochs)
Run Code Online (Sandbox Code Playgroud)

这样对吗?我需要将学习的权重存储在某个地方吗?

我检查这个答案这一个,但我不明白它是如何做。

有人可以向我解释要遵循的步骤吗?

python machine-learning word2vec data-science

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

单列热编码

我正在尝试在 Iris 数据集中的目标列('Species')上使用一个热编码器。

但我收到以下错误:

ValueError:预期的二维数组,而是得到一维数组:

使用 array.reshape(-1, 1) 如果您的数据具有单个特征或使用 array.reshape(1, -1) 如果它包含单个样本来重塑您的数据。

Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm    Species
0   1   5.1 3.5 1.4         0.2     Iris-setosa
1   2   4.9 3.0 1.4         0.2     Iris-setosa
2   3   4.7 3.2 1.3         0.2     Iris-setosa
3   4   4.6 3.1 1.5         0.2     Iris-setosa
4   5   5.0 3.6 1.4         0.2     Iris-setosa
Run Code Online (Sandbox Code Playgroud)

我确实在谷歌上搜索了这个问题,我发现大多数 scikit 学习估计器需要一个二维数组而不是一维数组。

同时,我也发现我们可以尝试通过dataframe及其索引来对单列进行编码,但是没有用

onehotencoder = OneHotEncoder(categorical_features=[df.columns.tolist().index('pattern_id')
X = dataset.iloc[:,1:5].values
y = dataset.iloc[:, 5].values

from sklearn.preprocessing import LabelEncoder, OneHotEncoder

labelencoder= LabelEncoder()
y = labelencoder.fit_transform(y)


onehotencoder = OneHotEncoder(categorical_features=[0]) …
Run Code Online (Sandbox Code Playgroud)

python-3.x pandas scikit-learn data-science one-hot-encoding

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

如何计算 DecisionTreeClassifier 的 0-1 确定性分数?

数据集 0-9 列:浮动特征(产品的参数) 10 列:int 标签(产品)

目标

  1. 计算标签的 0-1 分类确定性分数(这是我当前的代码应该做的)

  2. 为每行 (22'000) 的每个“product_name”(300 列)计算相同的确定性分数

错误我使用 sklearn.tree.DecisionTreeClassifier。我正在尝试使用“predict_proba”,但它给出了一个错误。

蟒蛇代码

data_train = pd.read_csv('data.csv')
features = data_train.columns[:-1]
labels = data_train.columns[-1]
x_features = data_train[features]
x_label = data_train[labels]
X_train, X_test, y_train, y_test = train_test_split(x_features, x_label, random_state=0)
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

clf = DecisionTreeClassifier(max_depth=3).fit(X_train, y_train)
class_probabilitiesDec = clf.predict_proba(y_train) 
#ERORR: ValueError: Number of features of the model must match the input. Model n_features is 10 and input n_features is 16722 


print('Decision Tree …
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning scikit-learn data-science

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

如何使用 sklearn.datasets.make_classification 在给定范围内生成合成数据?

我想为分类问题创建合成数据。我使用make_classification的方法sklearn.datasets。我希望数据在特定范围内,比方说[80, 155],但它正在生成负数。

我尝试了很多scaleclass_sep参数的组合,但没有得到想要的输出。

import pandas as pd
from sklearn.datasets import make_classification
weight = [0.2, 0.37, 0.21, 0.04, 0.11, 0.05, 0.02]

X, y = make_classification(n_samples=100, n_features=3,
            n_informative=3, n_redundant=0, n_repeated=0, 
            n_classes=7, n_clusters_per_class=1, weights=weight,
            class_sep=1,shuffle=True, random_state=41, scale= 1)

pd.DataFrame(X).describe()
Run Code Online (Sandbox Code Playgroud)

输出

输出应该在特定范围内,但它挑选出标准偏差约为 1.33 的随机值。

python machine-learning scikit-learn data-science

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

是否可以在 Folium 中绘制路径?

我阅读了许多与此相关的文档,但找不到我要找的东西。

我想绘制两点之间的步行路径。是否可以?如果没有,python 中是否还有其他库用于此目的?

python maps python-3.x folium data-science

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

如何使用 Google Colab 从 Github 存储库运行 .py 文件?

我想使用 Google Colab 来加速我的深度学习模型的计算过程。但是,我无法直接从 Google Colaboratory 中的 .ipynb 文件运行模型,因为它有几个单独编写的 .py 函数,然后主程序会在另一个 .py 文件中将它们一起调用。

提议的解决方案之一包括以下三个步骤:

  1. 在 Github 上提交代码
  2. 克隆协作
  3. 在 Colab 上运行此命令:!python model_Trainer.py

我已经做了步骤1并且2成功了,但是我仍然无法运行第三步。我收到以下错误:python3:无法打开文件“model_trainer.py”:[Errno 2] 没有这样的文件或目录。

有没有人有解决这个问题的方法?

我期待着您的回音。

python github machine-learning deep-learning data-science

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

使用熊猫,在将每个连续值与前一个值进行比较时遍历数据帧中的列的最佳方法是什么

例如,假设我有以下数据集,它持续 20,000 行(大数据集)。

time      velocity
0.000000  2.36949
0.005217  2.36169             
0.010434  2.35677
0.015651  2.35299
0.020869  2.35015
Run Code Online (Sandbox Code Playgroud)

我想取“速度”中的第二个值并从第一个值中减去它。如果差值小于 0.005,则继续第三个值。

并继续取第三个和第二个值的差值,但如果差值大于 0.005,则将这两个值的差值除以另一个值并存储结果。

我想在整个数据帧中继续这个过程。

最终,我想绘制满足我的条件的“增量值”与它们发生的时间。

任何帮助表示赞赏。

python iteration dataframe pandas data-science

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