از اونجایی که توی پیام ها گفتید با زبان انگلیسی مشکلی ندارید، یک کتاب خیلی خوب و مرتبط با چیزی که میخواید بهتون معرفی میکنم:
Artificial Intelligence with Python
اگر به سرفصل هاش نگاه کنی، میبینی هر آن چیزی رو که از «هوش مصنوعی» در زبان پایتون بهش احتیاج داری رو مفصلا توضیح داده. از طرفی، یک مقاله خیلی خوب هم وجود داره با عنوان 8 دلیل برای اینکه چرا پایتون زبان خوبیه واسه هوش مصنوعی ، که برای شما خوندنش خالی از لطف نیست.
برای اون مثالی هم که میخواستید، توی همون کتابی که بالاتر لینکش رو براتون گذاشتم، یک مثال هست برای «شبکه عصبی یک لایه که خروجیش سلول های عصبی مستقل از همه که مبتنی بر ورودی ساخته شدن» که میتونید در پایین مثال رو ببینید: قبل از هر چیزی باید بگم که دیتای ورودی رو داریم از فایلی به اسم neural_simple.txt
میخونیم که به این شکله: (دو ستون اول featureها هستن و دو ستون دوم labelها هستن)
array([[2. , 4. , 0. , 0. ],
[1.5, 3.9, 0. , 0. ],
[2.2, 4.1, 0. , 0. ],
[1.9, 4.7, 0. , 0. ],
[5.4, 2.2, 0. , 1. ],
[4.3, 7.1, 0. , 1. ],
[5.8, 4.9, 0. , 1. ],
[6.5, 3.2, 0. , 1. ],
[3. , 2. , 1. , 0. ],
[2.5, 0.5, 1. , 0. ],
[3.5, 2.1, 1. , 0. ],
[2.9, 0.3, 1. , 0. ],
[6.5, 8.3, 1. , 1. ],
[3.2, 6.2, 1. , 1. ],
[4.9, 7.8, 1. , 1. ],
[2.1, 4.8, 1. , 1. ]])
اینم از کد:
data = input_data[:, 0:2]
labels = input_data[:, 2:]
plt.figure()
plt.scatter(data[:,0], data[:,1])
plt.xlabel('Dimension 1')
plt.ylabel('Dimension 2')
plt.title('Input data')
dim1_min, dim1_max = data[:,0].min(), data[:,0].max()
dim2_min, dim2_max = data[:,1].min(), data[:,1].max()
nn_output_layer = labels.shape[1]
dim1 = [dim1_min, dim1_max]
dim2 = [dim2_min, dim2_max]
neural_net = nl.net.newp([dim1, dim2], nn_output_layer)
error = neural_net.train(data, labels, epochs=200, show=20, lr=0.01)
plt.figure()
plt.plot(error)
plt.xlabel('Number of epochs')
plt.ylabel('Training error')
plt.title('Training error progress')
plt.grid()
plt.show()
print('\nTest Results:')
data_test = [[1.5, 3.2], [3.6, 1.7], [3.6, 5.7],[1.6, 3.9]] for item in
data_test:
print(item, '-->', neural_net.sim([item])[0])
که شما خروجی رو با دیتای تست مذکور به شکل زیر میتونید ببینید:
[1.5, 3.2] --> [1. 0.]
[3.6, 1.7] --> [1. 0.]
[3.6, 5.7] --> [1. 1.]
[1.6, 3.9] --> [1. 0.]