Machine learning 在应用诸如MCA之类的降维方法后,如何降低新数据/输入的维数

Machine learning 在应用诸如MCA之类的降维方法后,如何降低新数据/输入的维数,machine-learning,dimensionality-reduction,Machine Learning,Dimensionality Reduction,我有一套这样的分类训练 col1 col2 col3 col4 9 8 10 9 10 8 9 9 ..................... dim1 dim2 0.857 -0.575 0.654 0.938 ............. 在我通过应用MCA(多重对应分析)对其进行降维之后,我得到了如下结果 col1 col2 col3 col4 9 8 10 9

我有一套这样的分类训练

col1   col2   col3   col4
 9      8      10     9
10      8       9     9
.....................
dim1    dim2
0.857  -0.575
0.654   0.938
.............
在我通过应用MCA(多重对应分析)对其进行降维之后,我得到了如下结果

col1   col2   col3   col4
 9      8      10     9
10      8       9     9
.....................
dim1    dim2
0.857  -0.575
0.654   0.938
.............
现在我的问题是如何找到像这样的新数据的(dim1,dim2)作为输入

col1  col2   col3  col4
10     9       8     8
MCA在训练集上执行后的输出是特征值、惯性等

我的python代码:

from sklearn.cluster import KMeans
import prince
data = pd.read_csv("data/training set.csv")
X = data.loc[:, 'OS.1':'DSA.1']
size = len(X)
X = X.values.tolist()

#...
#data preprocessing
#...

df = pd.DataFrame(X)
mca = prince.MCA(
               n_components=2,
               n_iter=3,
               copy=True,
               check_input=True,
               engine='auto',
               random_state=42
                )

mca = mca.fit(df)
X = mca.transform(df)

km = KMeans(n_clusters=3)
km.fit(X)
1.我想从用户处获取输入 2.在使用MCA进行降维之前对其进行预处理
3.使用K means预测它的集群

你只需要保持你的MCA对象
MCA
处于活动状态,就可以使用它转换新的输入数据。为此,只需对新数据调用
转换方法

from sklearn.cluster import KMeans
import prince
data = pd.read_csv("data/training set.csv")
X = data.loc[:, 'OS.1':'DSA.1']
size = len(X)
X = X.values.tolist()

#...
#data preprocessing
#...

df = pd.DataFrame(X)
mca = prince.MCA(
               n_components=2,
               n_iter=3,
               copy=True,
               check_input=True,
               engine='auto',
               random_state=42
                )

mca = mca.fit(df)
X = mca.transform(df)

km = KMeans(n_clusters=3)
km.fit(X)

# New data into x_new
# 1. Preprocess x_new as you preprocessed x
# Reuse mca on x_new
df_new = pd.DataFrame(x_new)
X_new = mca.transform(df_new)

# predictions
km.predict(X_new)
请分享你的相关代码