Fuzzy cognitive maps python library
Project description
PyFCM
Fuzzy cognitive maps python library. Also, supports the topology generation from data to solve classification problems. The details associated to the generation process are described in this paper.
Installation
From source:
- Clone repository:
$ git clone https://github.com/J41R0/PyFCM.git $ cd PyFCM
- Install setup tools and package:
$ pip install setuptools $ python setup.py install
From PyPi:
- Install package using pip:
$ pip install py-fcm
Example usage
Inference:
from py_fcm import from_json
fcm_json = """{
"max_iter": 500,
"decision_function": "LAST",
"activation_function": "sigmoid",
"memory_influence": False,
"stability_diff": 0.001,
"stop_at_stabilize": True,
"extra_steps": 5,
"weight": 1,
"concepts":
[
{
"id": "concept_1",
"is_active": True,
"type": "SIMPLE",
"activation": 0.5
},
{
"id": "concept_2", "is_active": True,
"type": "DECISION", "activation": 0.0,
"custom_function": "gceq",
"custom_function_args": {"weight": 0.3}
},
{
"id": "concept_3",
"is_active": True,
"type": "SIMPLE",
"activation": 0.0,
"use_memory": True
},
{
"id": "concept_4",
"is_active": True,
"type": "SIMPLE",
"activation": 0.3,
"custom_function": "saturation"
}
],
"relations":
[
{"origin": "concept_4", "destiny": "concept_2", "weight": -0.1},
{"origin": "concept_1", "destiny": "concept_3", "weight": 0.59},
{"origin": "concept_3", "destiny": "concept_2", "weight": 0.8911}
],
'activation_function_args': {'lambda_val': 1},
"""
my_fcm = from_json(fcm_json)
my_fcm.run_inference()
result = my_fcm.get_final_state(concept_type='any')
print(result)
Generation:
import pandas
from py_fcm import FcmEstimator
data_dict = {
'F1': ['x', 'x', 'y', 'y'],
'F2': [9.8, 7.3, 1.1, 3.6],
'class': ['a', 'a', 'r', 'r']
}
train = pandas.DataFrame(data_dict)
x_train = train.loc[:, train.columns != 'class']
y_train = train.loc[:, 'class']
estimator = FcmEstimator()
estimator.fit(x_train, y_train)
print(estimator.predict(x_train))
print("Accuracy: ",estimator.score(x_train, y_train))
print(estimator.get_fcm().to_json())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py_fcm-1.0.0.tar.gz
(48.8 kB
view details)
Built Distribution
py_fcm-1.0.0-py3-none-any.whl
(54.8 kB
view details)
File details
Details for the file py_fcm-1.0.0.tar.gz
.
File metadata
- Download URL: py_fcm-1.0.0.tar.gz
- Upload date:
- Size: 48.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 568cac736c482ab0808b3f61684ad78f233bf550e16a048fb8b007d668a34501 |
|
MD5 | 81caf6ae6c95eb048e75e2ea66d996d8 |
|
BLAKE2b-256 | dbc1d3c469f019c65cbccbebf37c5a955324a9e8a4d4f748a7e6e65980f2988a |
File details
Details for the file py_fcm-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: py_fcm-1.0.0-py3-none-any.whl
- Upload date:
- Size: 54.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4d1db17c2e3b88034ca7d949dff6bcf75e8d1e0c17cb7beb4a87885394127c1 |
|
MD5 | 9f6b697075324fee7cf28b4fd986c392 |
|
BLAKE2b-256 | 0ee4f7d0f530eda7e7d0fdaec19f5f83a32922d3d689a4303868e69889a7be3b |