loading...

بازدید : 1
چهارشنبه 9 بهمن 1403 زمان : 14:52

#Importing needed packages

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import preprocessing

برای نصب بسته‌ها، قبل از ورود به پایتون و در ترمینال از دستور pip3 install PACKAGE(s) NAME استفاده می‌کنیم.

#Downloading and reading data

df= pd.read_csv("https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/teleCust1000t.csv")
# take a look at the dataset
print(df.head())
# summarize the data
print(df.describe())
#how many of each class is in our data set
df['custcat'].value_counts()

آدرس فوق یک مثال برای انجام کد است و می‌تواند داده دیگری جایگزین آن گردد.

اگر دستور head و امثال آن در ترمینال نوشته شود نیازی به print() نیست. اما اگر در IDE نوشته شود بدون print() چیزی نمایش داده نمی‌شود.

#Feature set

df.columns
X = df[['region', 'tenure','age', 'marital', 'address', 'income', 'ed', 'employ','retire', 'gender', 'reside']] .values
y = df['custcat'].values

برای استفاده از کتابخانه scikit-learn لازم است از طریق کد بالا قالب داده pandas به آرایه Numphy تبدیل شود.

#Histogram plot

df.hist(column='income', bins=50)
plt.show()

#Creating train and test dataset

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=4)
print ('Train set:', X_train.shape,  y_train.shape)
print ('Test set:', X_test.shape,  y_test.shape)

#Normalize data

X_train_norm = preprocessing.StandardScaler().fit(X_train).transform(X_train.astype(float))

استاندارد کردن داده‌ها سبب ایجاد میانگین صفر و واریانس یک می‌شود. این کار برای الگوریتم‌های مبتنی بر فاصله مانند KNN ضروری است.

#Classifiaction

from sklearn.neighbors import KNeighborsClassifier
k = 4
#Train Model and Predict
neigh = KNeighborsClassifier(n_neighbors = k).fit(X_train_norm,y_train)
print(neigh)
X_test_norm = preprocessing.StandardScaler().fit(X_test).transform(X_test.astype(float))
yhat = neigh.predict(X_test_norm)

#Evaluation

from sklearn import metrics
print("Train set Accuracy: ", metrics.accuracy_score(y_train, neigh.predict(X_train_norm)))
print("Test set Accuracy: ", metrics.accuracy_score(y_test, yhat))

ارزیابی براساس روش جاکارد ( jaccard_score ) انجام گرفت.

#The best K

Ks = 10
mean_acc = np.zeros((Ks-1))
std_acc = np.zeros((Ks-1))

for n in range(1,Ks):

    #Train Model and Predict
    neigh = KNeighborsClassifier(n_neighbors = n).fit(X_train_norm,y_train)
    yhat=neigh.predict(X_test_norm)
    mean_acc[n-1] = metrics.accuracy_score(y_test, yhat)


    std_acc[n-1]=np.std(yhat==y_test)/np.sqrt(yhat.shape[0])

print(mean_acc)

#Plot the accuracy vs K

plt.plot(range(1,Ks),mean_acc,'g')
plt.fill_between(range(1,Ks),mean_acc - 1 * std_acc,mean_acc + 1 * std_acc, alpha=0.10)
plt.fill_between(range(1,Ks),mean_acc - 3 * std_acc,mean_acc + 3 * std_acc, alpha=0.10,color="green")
plt.legend(('Accuracy ', '+/- 1xstd','+/- 3xstd'))
plt.ylabel('Accuracy ')
plt.xlabel('Number of Neighbors (K)')
plt.tight_layout()
plt.show()

print( "The best accuracy was with", mean_acc.max(), "with k=", mean_acc.argmax()+1)

برگرفته از Machine learning with Python, IBM Developer

هکرها از XWorm RAT برای بهره برداری از اسکریپت Kiddies، Pwning 18000 دستگاه استفاده می کنند.
نظرات این مطلب

تعداد صفحات : -1

آمار سایت
  • کل مطالب : 0
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 1
  • بازدید کننده امروز : 1
  • باردید دیروز : 1
  • بازدید کننده دیروز : 1
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 3
  • بازدید ماه : 1
  • بازدید سال : 4
  • بازدید کلی : 37
  • کدهای اختصاصی