{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":3004,"databundleVersionId":861823,"sourceType":"competition"}],"dockerImageVersionId":30587,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        if filename == 'train.csv':\n            train_file_path = os.path.join(dirname, filename)\n        elif filename == 'test.csv':\n            test_file_path = os.path.join(dirname, filename)","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-11-16T07:46:35.678518Z","iopub.execute_input":"2023-11-16T07:46:35.679014Z","iopub.status.idle":"2023-11-16T07:46:35.687716Z","shell.execute_reply.started":"2023-11-16T07:46:35.678976Z","shell.execute_reply":"2023-11-16T07:46:35.686526Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom sklearn.decomposition import PCA\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.metrics import accuracy_score\n\n# Загрузка данных\ntrain_data = pd.read_csv(train_file_path)\ntest_data = pd.read_csv(test_file_path)\n\n# Предобработка данных\nX_train_kaggle = train_data.drop(columns=['label']) / 255.0\ny_train_kaggle = train_data['label']\nX_test_kaggle = test_data / 255.0\n\n# Применение PCA\npca = PCA(n_components=40)\nX_train_pca_kaggle = pca.fit_transform(X_train_kaggle)\nX_test_pca_kaggle = pca.transform(X_test_kaggle)\n\n# Обучение модели на данных Kaggle\nrf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)\nrf_classifier.fit(X_train_pca_kaggle, y_train_kaggle)\n\n# Предсказание меток для тестового набора Kaggle\ny_test_pred_kaggle = rf_classifier.predict(X_test_pca_kaggle)\n\n# Сохранение результатов в файл для Kaggle\nsubmission_kaggle = pd.DataFrame({\n    \"ImageId\": range(1, len(y_test_pred_kaggle) + 1),\n    \"Label\": y_test_pred_kaggle\n})\nsubmission_kaggle.to_csv(\"submission_kaggle.csv\", index=False)\n\n# Загружаем датасет Digits, содержащий изображения рукописных цифр\nfrom sklearn import datasets\nfrom sklearn.decomposition import PCA\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\ndigits = datasets.load_digits()\nscaler = StandardScaler()\nscaler.fit(digits.data)\nX_scaled = scaler.transform(digits.data)\n\n# Применяем PCA\npca = PCA(n_components=40)\nX_pca = pca.fit_transform(X_scaled)\n\n# Разбиваем данные на обучающий и тестовый наборы\nX_train, X_test, y_train, y_test = train_test_split(X_pca, digits.target, test_size=0.3, random_state=42)\n\n# Создаем и обучаем классификатор метода опорных векторов (SVC) с заданными параметрами\nfrom sklearn import svm\n\nclf = svm.SVC(gamma=0.001, C=100.)\nclf.fit(X_train, y_train)\n\n# Предсказываем метки для тестового набора данных Digits\ny_pred = clf.predict(X_test)\n\n# Выводим точность модели\nprint('Accuracy for Digits dataset: ', accuracy_score(y_test, y_pred))","metadata":{"execution":{"iopub.status.busy":"2023-11-16T07:46:35.689650Z","iopub.execute_input":"2023-11-16T07:46:35.690005Z","iopub.status.idle":"2023-11-16T07:47:28.353513Z","shell.execute_reply.started":"2023-11-16T07:46:35.689975Z","shell.execute_reply":"2023-11-16T07:47:28.351444Z"},"trusted":true},"execution_count":null,"outputs":[]}]}