درخت رگرسیون در پایتون

#Importing Needed packages

import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split

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

#Downloading and Reading Data

data = pd.read_csv("https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/real_estate_data.csv")
print(data.shape)
print(data.isna().sum())
#drop missing value
data.dropna(inplace=True)
print(data.isna().sum())

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

#Select some features

X = data.drop(columns=["MEDV"])
Y = data["MEDV"]

#Creating train and test dataset

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=.2, random_state=1)

#Modeling

regression_tree = DecisionTreeRegressor(criterion = "squared_error")
regression_tree.fit(X_train, Y_train)
#R2
print(regression_tree.score(X_test, Y_test))

روش های 'squared_error', 'absolute_error', 'poisson', 'friedman_mse' می توانند بعنوان معیار تعیین خطا انتخاب شوند.

#Predictions

prediction = regression_tree.predict(X_test)

#Evaluation

print("$",(prediction - Y_test).abs().mean()*1000)

#Visualization

tree.plot_tree(drugTree)
plt.show()

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

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

درخت تصمیم گیری در پایتون

#Importing Needed packages

import numpy as np 
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
import sklearn.tree as tree

قبل از فراخوانی بسته ها باید آنها را نصب داشته باشیم. برای نصب بسته ها، قبل از ورود به پایتون و در ترمینال از دستور 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/drug200.csv")
print(df.head())

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

#Select some features

X = df[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values
y = df["Drug"]

#Converting categorical variable into numerical variables

from sklearn import preprocessing
le_sex = preprocessing.LabelEncoder()
le_sex.fit(['F','M'])
X[:,1] = le_sex.transform(X[:,1]) 


le_BP = preprocessing.LabelEncoder()
le_BP.fit([ 'LOW', 'NORMAL', 'HIGH'])
X[:,2] = le_BP.transform(X[:,2])


le_Chol = preprocessing.LabelEncoder()
le_Chol.fit([ 'NORMAL', 'HIGH'])
X[:,3] = le_Chol.transform(X[:,3]) 

print(X[0:5])

#Creating train and test dataset

from sklearn.model_selection import train_test_split
X_trainset, X_testset, y_trainset, y_testset = train_test_split(X, y, test_size=0.3, random_state=3)

 

#Modeling

drugTree = DecisionTreeClassifier(criterion="entropy", max_depth = 4)
drugTree.fit(X_trainset,y_trainset)

#Predictions

predTree = drugTree.predict(X_testset)
print (predTree [0:5])
print (y_testset [0:5])

#Evaluation

from sklearn import metrics
import matplotlib.pyplot as plt
print("DecisionTrees's Accuracy: ", metrics.accuracy_score(y_testset, predTree))

#Visualization

tree.plot_tree(drugTree)
plt.show()

آنتروپی نشانه عدم اطمینان یا تصادفی بودن است و هرچه آنتروپی کمتر باشد (نزدیک به صفر باشد) خلوص گره بیشتر است.

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

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

نزدیک ترین همسایه در پایتون

#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 

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

رگرسیون خطی در پایتون

#Importing Needed packages

import matplotlib.pyplot as plt
import pandas as pd
import pylab as pl
import numpy as np

قبل از فراخوانی بسته ها باید آنها را نصب داشته باشیم. برای نصب بسته ها، قبل از ورود به پایتون و در ترمینال از دستور 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%202/data/FuelConsumptionCo2.csv")
print (df)
# take a look at the dataset
df.head()
# summarize the data
df.describe()

 

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

#Select some features

cdf = df[['ENGINESIZE','CYLINDERS', 'FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY','FUELCONSUMPTION_COMB','CO2EMISSIONS']]
cdf.head(9)

#Histogram Plot

viz = cdf[['CYLINDERS','ENGINESIZE','CO2EMISSIONS','FUELCONSUMPTION_COMB']]
viz.hist()
plt.show()

#Scatter Plot

plt.scatter(cdf.FUELCONSUMPTION_COMB, cdf.CO2EMISSIONS,  color='blue')
plt.xlabel("FUELCONSUMPTION_COMB")
plt.ylabel("Emission")
plt.show()

وجود رابطه خطی بین متغیر مستقل و وابسته برای انجام رگرسیون خطی ضروری است. برای بررسی این رابطه از نمودار پراکنش استفاده می شود.

#Creating train and test dataset

msk = np.random.rand(len(df)) < 0.8
train = cdf[msk]
test = cdf[~msk

#Train data distribution

plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS,  color='blue')
plt.xlabel("Engine size")
plt.ylabel("Emission")
plt.show()

#Modeling

from sklearn import linear_model
regr = linear_model.LinearRegression()
train_x = np.asanyarray(train[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
train_y = np.asanyarray(train[['CO2EMISSIONS']])
regr.fit(train_x, train_y)
# The coefficients
print ('Coefficients: ', regr.coef_)
print ('Intercept: ',regr.intercept_)

نوع رگرسیون خطی بسته به تعداد متغیر مستقل (x) دارد. در رگرسیون ساده (simple) تنها از یک متغیر مستقل و در رگرسیون چندگانه (multiple) از بیش از یک متغیر مستقل استفاده می شود.

#Plot outputs

plt.scatter(train.ENGINESIZE, train.CO2EMISSIONS,  color='blue')
plt.plot(train_x, regr.coef_[0][0]*train_x + regr.intercept_[0], '-r')
plt.xlabel("Engine size")
plt.ylabel("Emission")

#Evaluation

from sklearn.metrics import r2_score

test_x = np.asanyarray(test[['ENGINESIZE','CYLINDERS','FUELCONSUMPTION_COMB']])
test_y = np.asanyarray(test[['CO2EMISSIONS']])
test_y_ = regr.predict(test_x)

print("Mean absolute error: %.2f" % np.mean(np.absolute(test_y_ - test_y)))
print("Residual sum of squares (MSE): %.2f" % np.mean((test_y_ - test_y) ** 2))
print("R2-score: %.2f" % r2_score(test_y , test_y_) )
print('Variance score: %.2f' % regr.score(test_x, test_y))

مدل بهینه مدلی است که کمترین خطا را داشته باشد، یعنی کمترین MSE.

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

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

پرداخت اقساط معوق اختراع

 اقساط سالیانه اختراع، حداکثر تا 6 ماه بعد از تاریخِ سررسید قابل پرداخت می باشند و بعد از آن بصورت سیستماتیک امکان پرداخت سلب شده و گواهینامه اختراع مطابق ماده 16 قانون ثبت اختراعات مصوب 1386/8/7 فاقد اعتبار تلقی می گردد.

 

طبق قانون اگر پرداخت قسط ثبت اختراع تا 6 ماه صورت نگیرد، گواهی اختراع باطل می شود. با این حال، اخیرا درگاه پرداخت برای اقساط معوق فعال شده است و می توان برای بازپرداخت معوقات به صفجه اظهارنامه مراجعه نمود.

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

ظرف شستن به سبک هلندی

هلندی ها برای شستشوی ظرف سینک رو آب کرده و از آن آب بارها و بارها استفاده می کنند.
در حقیقت اینکه شیر آب را تا ته باز بگذاریم و سر صبر، شُر و شُر ظرف ها را آب کشی کنیم، نه تنها خجالت آور، که وحشتناک است.
ساختار روشویی های قدیمی در انگلیس هم بر همین اساس است.
حتما مسواک زدن و شیو کردن بدون آب غربی ها را در فیلم ها دیده اید.
و احتمالا می دانید که در سرویس بهداشتی های غربی خبری از شیر آب نیست.

اینکه هر روز حمام میروند هم در افسانه ها بایگانی کنید.

و شاید ندانید که حتی در ثروتمندترین کشورهای اروپایی، تنها راه خنک شدن مردم در تابستان های گرم و شرجی باز کردن پنجره است! بی دلیل نیست که هزاران نفر در اروپا از گرما فوت می کنند.

Heatwave last summer killed 61000 people in Europe

 

درست است که این سبک زندگی برای ما ایرانی ها قابل قبول نیست. اما در نظر داشته باشید که تمام آنچه گفته شد درمورد قاره سبز، یعنی اروپاست، کشورهایی که حتی بهار و تابستان پر بارانی دارند!


پس در این روزهای گرم، در فلات خشک ایران، هوای آب را داشته باشیم.

حتی یک قطره هم مهم هست.

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

فراخوان بورسیه تحصیلی دولت مکزیک (AMEXCID)

دولت مکزیک برای متقاضیان ارشد تا فوق دکترا بورسیه تحصیلی در نظر گرفته است. کمک هزینه ماهانه بین 12 تا 15 هزار دلار می باشد.

مهلت اقدام 30 تیر

لینک فراخوان

 

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

حمایت از پایان نامه های دانشجویی و طرح های پسا دکتری داخل و خارج از کشور

شرکت شهرک های صنعتی استان البرز از طرح های دانشجویان داخل و یا خارج از کشور در حوزه های صنایع کوچک، زیر ساخت های صنعتی، برنامه ریزی، و امور مالی و حقوقی تا سقف 24 میلیون تومان حمایت می کند.

دریافت فایل فراخوان

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

راه ابریشم یونسکو- کمک هزینه پژوهشی جوانان زیر 35 سال

"کمک هزینه پژوهشی جوانان راه ابریشم سال ۲۰۲۳"

 آخرین مهلت شرکت در فراخوان: ۳۱ می ۲۰۲۳ 

اطلاعات بیشتر در سایت یونسکو

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN

از اروپا یاد بگیریم- طبیعت دوستی

- اهل کجایی؟

- ایران!

- ایران؟!؟! من ایرانی های زیادی را میشناسم!

نگاهی به اطرافیانش می کند و با تردید و خنده می پرسد:

-ایرانی ها همونایی نیستند که تو پارک آتیش روشن می کنند؟! .... کباب؟!

و بقیه با لبخند و حرکت سر تایید می کنند!

****

همانطور که در شکل زیر با قرمز مشخص شده، انداختن ته سیگار در پارک می تواند جریمه ای بالغ بر 7هزار یورو داشته باشد و این 2 تا 3 برابر متوسط حقوق است!!

تصور کنید برای زمین انداختن ته سیگار مجبور شویدحقوق 3 ماهتان را کامل بدهید برود! آیا هرگز به خود اجازه امتحان کردن می دهید؟

 

 

هرچند همواره انسان هایی از بلاد شرق پیدا می شوند که بدون مطالعه و دانش کافی از قوانین (و نه از سر لجبازی) وسط پارک آتش روشن می کنند تا کباب بخورند!!

 

در این روزهای زیبابی بهاری و در روز طبیعت کمی احترام به محیط زیست را تمرین کنیم. بخصوص اگر سودای رفتن داریم.

۰ نظر موافقین ۰ مخالفین ۰
Dr. JAN