{ "cells": [ { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Derajat 0\n", "def derajat0 (img):\n", " max - np.max(img)\n", " imgTmp = np.zeros([max+1,max+1])\n", " for i in range (len(img)):\n", " for j in range (len(img[i])-1):\n", " imgTmp[img[i][j], img[i,j+1]] +=1\n", "\n", " transpos - np.transpose(imgTmp)\n", " data - imgTmp + transpos\n", "\n", " tmp = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " tmp += data[i,j]\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " data[i,j] /= tmp\n", " return data\n", "\n", "# Derajat 45\n", "def derajat45 (img):\n", " max - np.max(img)\n", " imgTmp = np.zeros([max+1,max+1])\n", " for i in range (len(img)):\n", " for j in range (len(img[i])-1):\n", " imgTmp[img[i][j], img[i,j+1]] +=1\n", "\n", " transpos - np.transpose(imgTmp)\n", " data - imgTmp + transpos\n", "\n", " tmp = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " tmp += data[i,j]\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " data[i,j] /= tmp\n", " return data\n", "\n", "# Derajat 90\n", "def derajat90 (img):\n", " max - np.max(img)\n", " imgTmp = np.zeros([max+1,max+1])\n", " for i in range (len(img)):\n", " for j in range (len(img[i])-1):\n", " imgTmp[img[i][j], img[i,j+1]] +=1\n", "\n", " transpos - np.transpose(imgTmp)\n", " data - imgTmp + transpos\n", "\n", " tmp = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " tmp += data[i,j]\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " data[i,j] /= tmp\n", " return data\n", "\n", "# Derajat 135\n", "def derajat135 (img):\n", " max - np.max(img)\n", " imgTmp = np.zeros([max+1,max+1])\n", " for i in range (len(img)):\n", " for j in range (len(img[i])-1):\n", " imgTmp[img[i][j], img[i,j+1]] +=1\n", "\n", " transpos - np.transpose(imgTmp)\n", " data - imgTmp + transpos\n", "\n", " tmp = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " tmp += data[i,j]\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " data[i,j] /= tmp\n", " return data" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# contrast\n", "def contrast (data):\n", " contrast = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " contrast += data[i,j] *pow(i-j,2)\n", " return contrast\n", "\n", "# entropy\n", "def entropy (data):\n", " entropy = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " if data[i,j] > 0.0:\n", " entropy += - (data[i,j] * math.log(data[i,j]))\n", " return entropy\n", "\n", "# homogenitas\n", "def homogenitas (data):\n", " homogenitas = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " homogenitas += data[i,j]*(1+(pow(i-j,2)))\n", " return homogenitas\n", "\n", "# energy\n", "def energy (data):\n", " energy = 0\n", " for i in range (len(data)):\n", " for j in range (len(data)):\n", " energy += data[i,j]**2\n", " return energy" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[9], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# KNN\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msklearn\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mneighbors\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m KNeighborsClassifier\n\u001b[0;32m 3\u001b[0m knn \u001b[38;5;241m=\u001b[39m KNeighborsClassifier(n_neighbors\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m)\n\u001b[0;32m 4\u001b[0m knn\u001b[38;5;241m.\u001b[39mfit(data, label)\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\__init__.py:96\u001b[0m\n\u001b[0;32m 85\u001b[0m \u001b[38;5;66;03m# `_distributor_init` allows distributors to run custom init code.\u001b[39;00m\n\u001b[0;32m 86\u001b[0m \u001b[38;5;66;03m# For instance, for the Windows wheel, this is used to pre-load the\u001b[39;00m\n\u001b[0;32m 87\u001b[0m \u001b[38;5;66;03m# vcomp shared library runtime for OpenMP embedded in the sklearn/.libs\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 90\u001b[0m \u001b[38;5;66;03m# later is linked to the OpenMP runtime to make it possible to introspect\u001b[39;00m\n\u001b[0;32m 91\u001b[0m \u001b[38;5;66;03m# it and importing it first would fail if the OpenMP dll cannot be found.\u001b[39;00m\n\u001b[0;32m 92\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 93\u001b[0m __check_build, \u001b[38;5;66;03m# noqa: F401\u001b[39;00m\n\u001b[0;32m 94\u001b[0m _distributor_init, \u001b[38;5;66;03m# noqa: F401\u001b[39;00m\n\u001b[0;32m 95\u001b[0m )\n\u001b[1;32m---> 96\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbase\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m clone\n\u001b[0;32m 97\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_show_versions\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m show_versions\n\u001b[0;32m 99\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m 100\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcalibration\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 101\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcluster\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 142\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mshow_versions\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 143\u001b[0m ]\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\base.py:19\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_config\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m config_context, get_config\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexceptions\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m InconsistentVersionWarning\n\u001b[1;32m---> 19\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_estimator_html_repr\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _HTMLDocumentationLinkMixin, estimator_html_repr\n\u001b[0;32m 20\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_metadata_requests\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _MetadataRequester, _routing_enabled\n\u001b[0;32m 21\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_param_validation\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m validate_parameter_constraints\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\__init__.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _joblib, metadata_routing\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_bunch\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Bunch\n\u001b[1;32m---> 13\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_chunking\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m gen_batches, gen_even_slices\n\u001b[0;32m 14\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_estimator_html_repr\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m estimator_html_repr\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# Make _safe_indexing importable from here for backward compat as this particular\u001b[39;00m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;66;03m# helper is considered semi-private and typically very useful for third-party\u001b[39;00m\n\u001b[0;32m 18\u001b[0m \u001b[38;5;66;03m# libraries that want to comply with scikit-learn's estimator API. In particular,\u001b[39;00m\n\u001b[0;32m 19\u001b[0m \u001b[38;5;66;03m# _safe_indexing was included in our public API documentation despite the leading\u001b[39;00m\n\u001b[0;32m 20\u001b[0m \u001b[38;5;66;03m# `_` in its name.\u001b[39;00m\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\_chunking.py:8\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_config\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_config\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_param_validation\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Interval, validate_params\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mchunk_generator\u001b[39m(gen, chunksize):\n\u001b[0;32m 12\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Chunk generator, ``gen`` into lists of length ``chunksize``. The last\u001b[39;00m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;124;03m chunk may have a length less than ``chunksize``.\"\"\"\u001b[39;00m\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\_param_validation.py:14\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msparse\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m csr_matrix, issparse\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_config\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m config_context, get_config\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvalidation\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _is_arraylike_not_scalar\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mclass\u001b[39;00m \u001b[38;5;21;01mInvalidParameterError\u001b[39;00m(\u001b[38;5;167;01mValueError\u001b[39;00m, \u001b[38;5;167;01mTypeError\u001b[39;00m):\n\u001b[0;32m 18\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Custom exception to be raised when the parameter of a class/method/function\u001b[39;00m\n\u001b[0;32m 19\u001b[0m \u001b[38;5;124;03m does not have a valid type or value.\u001b[39;00m\n\u001b[0;32m 20\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\validation.py:29\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_config \u001b[38;5;28;01mas\u001b[39;00m _get_config\n\u001b[0;32m 28\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexceptions\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m DataConversionWarning, NotFittedError, PositiveSpectrumWarning\n\u001b[1;32m---> 29\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_array_api\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m _asarray_with_order, _is_numpy_namespace, get_namespace\n\u001b[0;32m 30\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mutils\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfixes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ComplexWarning, _preserve_dia_indices_dtype\n\u001b[0;32m 31\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_isfinite\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m FiniteStatus, cy_isfinite\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\_array_api.py:11\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mspecial\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mspecial\u001b[39;00m\n\u001b[0;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_config\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_config\n\u001b[1;32m---> 11\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfixes\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m parse_version\n\u001b[0;32m 13\u001b[0m _NUMPY_NAMESPACE_NAMES \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnumpy\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124marray_api_compat.numpy\u001b[39m\u001b[38;5;124m\"\u001b[39m}\n\u001b[0;32m 16\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21myield_namespaces\u001b[39m(include_numpy_namespaces\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m):\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\utils\\fixes.py:20\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\n\u001b[0;32m 19\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msparse\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mlinalg\u001b[39;00m\n\u001b[1;32m---> 20\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstats\u001b[39;00m\n\u001b[0;32m 22\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msklearn\u001b[39;00m\n\u001b[0;32m 24\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexternals\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_packaging\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mversion\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m parse \u001b[38;5;28;01mas\u001b[39;00m parse_version\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\__init__.py:628\u001b[0m\n\u001b[0;32m 626\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_entropy\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;241m*\u001b[39m\n\u001b[0;32m 627\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_hypotests\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;241m*\u001b[39m\n\u001b[1;32m--> 628\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_rvs_sampling\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m rvs_ratio_uniforms\n\u001b[0;32m 629\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_page_trend_test\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m page_trend_test\n\u001b[0;32m 630\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_mannwhitneyu\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m mannwhitneyu\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\_rvs_sampling.py:2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mwarnings\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstats\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01msampling\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m RatioUniforms\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrvs_ratio_uniforms\u001b[39m(pdf, umax, vmin, vmax, size\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m, c\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m, random_state\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 5\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;124;03m Generate random samples from a probability density function using the\u001b[39;00m\n\u001b[0;32m 7\u001b[0m \u001b[38;5;124;03m ratio-of-uniforms method.\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[38;5;124;03m Please refer to `scipy.stats.sampling.RatioUniforms` for the documentation.\u001b[39;00m\n\u001b[0;32m 48\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\sampling.py:59\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;124;03m======================================================\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;124;03mRandom Number Generators (:mod:`scipy.stats.sampling`)\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 57\u001b[0m \n\u001b[0;32m 58\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m---> 59\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_sampling\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m FastGeneratorInversion, RatioUniforms \u001b[38;5;66;03m# noqa: F401\u001b[39;00m\n\u001b[0;32m 60\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_unuran\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01munuran_wrapper\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ( \u001b[38;5;66;03m# noqa: F401\u001b[39;00m\n\u001b[0;32m 61\u001b[0m TransformedDensityRejection,\n\u001b[0;32m 62\u001b[0m DiscreteAliasUrn,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 67\u001b[0m UNURANError\n\u001b[0;32m 68\u001b[0m )\n\u001b[0;32m 70\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNumericalInverseHermite\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNumericalInversePolynomial\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 71\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTransformedDensityRejection\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSimpleRatioUniforms\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 72\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRatioUniforms\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDiscreteAliasUrn\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDiscreteGuideTable\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 73\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUNURANError\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFastGeneratorInversion\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n", "File \u001b[1;32mc:\\Users\\pozak\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\_sampling.py:8\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m special \u001b[38;5;28;01mas\u001b[39;00m sc\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_qmc\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (check_random_state \u001b[38;5;28;01mas\u001b[39;00m check_random_state_qmc,\n\u001b[0;32m 7\u001b[0m Halton, QMCEngine)\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_unuran\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01munuran_wrapper\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m NumericalInversePolynomial\n\u001b[0;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mscipy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_lib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_util\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m check_random_state\n\u001b[0;32m 12\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFastGeneratorInversion\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mRatioUniforms\u001b[39m\u001b[38;5;124m'\u001b[39m]\n", "File \u001b[1;32m:404\u001b[0m, in \u001b[0;36mparent\u001b[1;34m(self)\u001b[0m\n", "\u001b[1;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "# KNN\n", "from sklearn.neighbors import KNeighborsClassifier\n", "knn = KNeighborsClassifier(n_neighbors=3)\n", "knn.fit(data, label)\n", "knn.score(data, label)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pred_class = knn.predict(X_test)\n", "print(pred_class)\n", "pred_class.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# evalueasi\n", "from sklearn.metrics import accuracy_score\n", "score = accuracy_score(y_test, pred_class)\n", "print(\"model accuracy knn\", score*100, \"%\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn import metrics\n", "print(metrics)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Potongan 1,1 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 250 | R = 251 | R = 251 |\n", "| G = 255 | G = 255 | G = 252 |\n", "| B = 255 | B = 255 | B = 255 |\n", "+---------+---------+---------+\n", "| R = 249 | R = 254 | R = 255 |\n", "| G = 253 | G = 255 | G = 254 |\n", "| B = 254 | B = 255 | B = 255 |\n", "+---------+---------+---------+\n", "| R = 255 | R = 253 | R = 254 |\n", "| G = 255 | G = 251 | G = 249 |\n", "| B = 255 | B = 254 | B = 253 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 1,2 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 255 | R = 255 | R = 255 |\n", "| G = 253 | G = 252 | G = 246 |\n", "| B = 255 | B = 255 | B = 246 |\n", "+---------+---------+---------+\n", "| R = 255 | R = 255 | R = 255 |\n", "| G = 253 | G = 249 | G = 244 |\n", "| B = 255 | B = 250 | B = 243 |\n", "+---------+---------+---------+\n", "| R = 250 | R = 255 | R = 255 |\n", "| G = 244 | G = 252 | G = 231 |\n", "| B = 246 | B = 250 | B = 230 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 1,3 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 255 | R = 193 | R = 182 |\n", "| G = 233 | G = 154 | G = 121 |\n", "| B = 228 | B = 149 | B = 126 |\n", "+---------+---------+---------+\n", "| R = 168 | R = 135 | R = 130 |\n", "| G = 133 | G = 84 | G = 63 |\n", "| B = 131 | B = 83 | B = 70 |\n", "+---------+---------+---------+\n", "| R = 123 | R = 113 | R = 118 |\n", "| G = 67 | G = 40 | G = 38 |\n", "| B = 70 | B = 47 | B = 49 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 2,1 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 253 | R = 255 | R = 255 |\n", "| G = 248 | G = 251 | G = 253 |\n", "| B = 252 | B = 252 | B = 253 |\n", "+---------+---------+---------+\n", "| R = 254 | R = 255 | R = 255 |\n", "| G = 248 | G = 253 | G = 252 |\n", "| B = 252 | B = 255 | B = 248 |\n", "+---------+---------+---------+\n", "| R = 255 | R = 255 | R = 242 |\n", "| G = 239 | G = 240 | G = 222 |\n", "| B = 247 | B = 246 | B = 221 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 2,2 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 255 | R = 255 | R = 214 |\n", "| G = 252 | G = 247 | G = 174 |\n", "| B = 251 | B = 243 | B = 174 |\n", "+---------+---------+---------+\n", "| R = 248 | R = 219 | R = 170 |\n", "| G = 235 | G = 185 | G = 115 |\n", "| B = 229 | B = 183 | B = 118 |\n", "+---------+---------+---------+\n", "| R = 154 | R = 171 | R = 184 |\n", "| G = 123 | G = 115 | G = 111 |\n", "| B = 120 | B = 118 | B = 118 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 2,3 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 124 | R = 136 | R = 125 |\n", "| G = 54 | G = 53 | G = 34 |\n", "| B = 62 | B = 63 | B = 49 |\n", "+---------+---------+---------+\n", "| R = 134 | R = 118 | R = 111 |\n", "| G = 63 | G = 34 | G = 17 |\n", "| B = 71 | B = 47 | B = 35 |\n", "+---------+---------+---------+\n", "| R = 209 | R = 159 | R = 110 |\n", "| G = 125 | G = 68 | G = 16 |\n", "| B = 138 | B = 85 | B = 34 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 3,1 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 231 | R = 192 | R = 169 |\n", "| G = 194 | G = 151 | G = 119 |\n", "| B = 211 | B = 165 | B = 128 |\n", "+---------+---------+---------+\n", "| R = 185 | R = 222 | R = 167 |\n", "| G = 133 | G = 165 | G = 96 |\n", "| B = 155 | B = 184 | B = 110 |\n", "+---------+---------+---------+\n", "| R = 204 | R = 242 | R = 171 |\n", "| G = 140 | G = 172 | G = 88 |\n", "| B = 166 | B = 196 | B = 106 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 3,2 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 129 | R = 181 | R = 168 |\n", "| G = 67 | G = 98 | G = 72 |\n", "| B = 72 | B = 108 | B = 84 |\n", "+---------+---------+---------+\n", "| R = 145 | R = 183 | R = 212 |\n", "| G = 59 | G = 81 | G = 101 |\n", "| B = 72 | B = 95 | B = 120 |\n", "+---------+---------+---------+\n", "| R = 141 | R = 145 | R = 156 |\n", "| G = 44 | G = 34 | G = 38 |\n", "| B = 61 | B = 53 | B = 62 |\n", "+---------+---------+---------+\n", "---------\n", "Potongan 3,3 (3x3 piksel):\n", "+---------+---------+---------+\n", "| R = 208 | R = 253 | R = 177 |\n", "| G = 105 | G = 151 | G = 86 |\n", "| B = 126 | B = 173 | B = 104 |\n", "+---------+---------+---------+\n", "| R = 187 | R = 214 | R = 179 |\n", "| G = 70 | G = 106 | G = 90 |\n", "| B = 96 | B = 132 | B = 110 |\n", "+---------+---------+---------+\n", "| R = 164 | R = 154 | R = 200 |\n", "| G = 45 | G = 45 | G = 115 |\n", "| B = 73 | B = 74 | B = 138 |\n", "+---------+---------+---------+\n", "---------\n" ] } ], "source": [ "from PIL import Image\n", "from tabulate import tabulate \n", "\n", "# Load image\n", "image_path = 'D:\\Kuliah\\SKRIPSI\\Kakao\\cacao_dataset\\phytophthora8 .jpg' # Ganti dengan path gambar yang Anda upload\n", "img = Image.open(image_path)\n", "\n", "# Convert image to RGB\n", "img_rgb = img.convert(\"RGB\")\n", "\n", "# Set ukuran potongan piksel (3x3)\n", "crop_size = (3, 3)\n", "\n", "# Ukuran grid yang diinginkan (contoh: 3x3)\n", "grid_rows = 3\n", "grid_cols = 3\n", "\n", "# Fungsi untuk memotong gambar dan mendapatkan nilai RGB\n", "def get_rgb_crops(img_rgb, crop_size, grid_rows, grid_cols):\n", " img_width, img_height = img_rgb.size\n", " rgb_values = []\n", " \n", " # Ambil potongan 3x3 dari beberapa area gambar\n", " for row in range(grid_rows):\n", " row_rgb = []\n", " for col in range(grid_cols):\n", " x = col * crop_size[0]\n", " y = row * crop_size[1]\n", " box = (x, y, x + crop_size[0], y + crop_size[1])\n", " cropped_img = img_rgb.crop(box)\n", " \n", " # Ambil nilai RGB dari potongan 3x3\n", " cropped_rgb = []\n", " for i in range(crop_size[1]):\n", " row_pixels = []\n", " for j in range(crop_size[0]):\n", " pixel_rgb = cropped_img.getpixel((j, i))\n", " row_pixels.append(f\"R = {pixel_rgb[0]}\\nG = {pixel_rgb[1]}\\nB = {pixel_rgb[2]}\")\n", " cropped_rgb.append(row_pixels)\n", " \n", " row_rgb.append(cropped_rgb)\n", " rgb_values.append(row_rgb)\n", " \n", " return rgb_values\n", "\n", "# Dapatkan nilai RGB dari potongan 3x3\n", "rgb_crops = get_rgb_crops(img_rgb, crop_size, grid_rows, grid_cols)\n", "\n", "# Fungsi untuk mencetak hasil dalam bentuk tabel\n", "def print_rgb_table(rgb_crops, grid_rows, grid_cols):\n", " for row in range(grid_rows):\n", " for col in range(grid_cols):\n", " print(f\"Potongan {row+1},{col+1} (3x3 piksel):\")\n", " print(tabulate(rgb_crops[row][col], tablefmt=\"grid\"))\n", " print(\"---------\")\n", "\n", "# Cetak hasil dalam bentuk tabel\n", "print_rgb_table(rgb_crops, grid_rows, grid_cols)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 2 }