我正在使用 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(卡方拟合优度)
警报:迭代完成,未找到最大似然
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'。
我正在尝试对来自不同公司的产品销售的数据进行聚类。请注意,我将列中的任何字符串映射到数值,以便我可以使用 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)
但是有没有更好的方法来做到这一点?
我需要微调我的 word2vec 模型。我有两个数据集,data1和data2.
到目前为止我所做的是:
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)
这样对吗?我需要将学习的权重存储在某个地方吗?
有人可以向我解释要遵循的步骤吗?
我正在尝试在 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
数据集 0-9 列:浮动特征(产品的参数) 10 列:int 标签(产品)
目标
计算标签的 0-1 分类确定性分数(这是我当前的代码应该做的)
为每行 (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
我想为分类问题创建合成数据。我使用make_classification的方法sklearn.datasets。我希望数据在特定范围内,比方说[80, 155],但它正在生成负数。
我尝试了很多scale和class_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 中是否还有其他库用于此目的?
我想使用 Google Colab 来加速我的深度学习模型的计算过程。但是,我无法直接从 Google Colaboratory 中的 .ipynb 文件运行模型,因为它有几个单独编写的 .py 函数,然后主程序会在另一个 .py 文件中将它们一起调用。
提议的解决方案之一包括以下三个步骤:
我已经做了步骤1并且2成功了,但是我仍然无法运行第三步。我收到以下错误:python3:无法打开文件“model_trainer.py”:[Errno 2] 没有这样的文件或目录。
有没有人有解决这个问题的方法?
我期待着您的回音。
例如,假设我有以下数据集,它持续 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,则将这两个值的差值除以另一个值并存储结果。
我想在整个数据帧中继续这个过程。
最终,我想绘制满足我的条件的“增量值”与它们发生的时间。
任何帮助表示赞赏。
data-science ×10
python ×7
scikit-learn ×4
pandas ×3
python-3.x ×3
dataframe ×1
folium ×1
for-loop ×1
github ×1
iteration ×1
k-means ×1
maps ×1
r ×1
word2vec ×1