Параметр сервлета init всегда показывает ноль

На самом деле это не проблема PCA, а просто переименование ваших столбцов: набор данных digits имеет 64 столбца, и вы пытаетесь назвать столбцы в соответствии с именами столбцов для 4 столбцов в iris набор данных.

Из-за характера набора данных цифр (пикселей) на столбцах действительно нет соответствующей схемы именования. Так что просто не переименуйте их.

digits = datasets.load_digits()      

x = pd.DataFrame(digits.data)     

pca = decomposition.PCA(n_components=2)
pca.fit(x)
x = pca.transform(x)

# Here is the result of your PCA (2 components)
>>> x
array([[ -1.25946636,  21.27488332],
       [  7.95761139, -20.76869904],
       [  6.99192268,  -9.9559863 ],
       ..., 
       [ 10.80128366,  -6.96025224],
       [ -4.87210049,  12.42395326],
       [ -0.34438966,   6.36554934]])

Тогда вы можете построить первый компьютер против второго, если это то, что вы собираетесь (что я собрал из вашего кода)

plt.scatter(x[:,0], x[:,1], s=40)
plt.show()

0
задан davide volpini 19 January 2019 в 22:02
поделиться

2 ответа

Используйте аннотацию @WebServlet ИЛИ элементы web.xml. Не смешивайте их. https://www.codejava.net/java-ee/servlet/webservlet-annotation-examples показывает примеры указания параметров инициализации в аннотации.

0
ответ дан nitind 19 January 2019 в 22:02
поделиться

Удалить аннотацию @WebServlet ("/ MyFirstServlet")

Сохранять только методы doGet () и doPost () и удалять все другие переменные и методы.

получить доступ к параметру init, используя следующий код.

public void init()  {
    String servletInitParameterValue =  getServletConfig().getInitParameter("parInit");
    System.out.println("servletInitParameterValue = "+ servletInitParameterValue);

    String contextParameterValue = getServletContext().getInitParameter("ContextParameter");
    System.out.println("contextParameterValue = "+ contextParameterValue ); }
0
ответ дан virus 19 January 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: