432 lines
32 KiB
Plaintext
432 lines
32 KiB
Plaintext
{
|
|
"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<frozen importlib._bootstrap>: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
|
|
}
|