پایتون یکی از محبوب ترین ابزارها در داده کاوی، متن کاوی، نظرکاوی، تمامی علوم مرتبط با علم داده است. در این سری پروژه ها، مسائل مرتبط با علم داده به وسیله زبان برنامه نویسی پایتون پیاده سازی شده است.
امروزه در دانش پزشکی شاهد جمع آوری داده های فراوان در مورد بیماری های مختلف هستیم . تحقیق روی این داده ها و بدست آوردن نتایج و الگو های مفید در رابطه با بیماری ها یکی از اهداف استفاده از این داده ها است. در این پروژه برای بدست آوردن روابط مفید بین عوامل خطر زا در بیماری قلبی استفاده کرده ایم. این بیماری با توجه به شیوه و سهمی که در مرگ و میر انسانها دارد از اهمیت بالایی برخوردار است. با اعمال داده کاوی روی این داده های مربوط به 300 بیمار مهم ترین متغیرها در ارتباط با Thal ، Cp Thalach، Exang و Ca می باشد . در این پروژه از این دیتاست برای انجام پروژه داده کاوی بهره جست شده است.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
دیتاست این پروژه در لینک قابل مشاهده است.
در این پروژه خط به خط برنامه توضیح داده شده است و برای کسانی که به دنبال انجام پروژه های مشابه نیز هستند مفید است.
بعد از خرید این پروژه پایتون موارد زیر برای شما ایمیل می شود:
1- کد پایتون برنامه با توضیحات خط به خط
2- مجموعه داده تحقیق
3- یک فایل ورد شامل گزارش پروژه
در این پروژه یک الگوریتم کلاسیک یادگیری ماشین برای مدل سازی و استخراج دانش مورد استفاده قرار گرفته است. هدف از این پروژه استخراج دانش خام است. برای فهم بهتر این حوزه مطالعاتی به وب سایت آکادمی داده مراجعه بفرمایید. اگر پروژه ای برای پیاده سازی در پایتون دارید با ما تماس بگیرید.
داده کاوی با پایتون
خانه دسته بندی نشده داده کاوی با پایتون
داده کاوی با پایتون : دیتاماینینگ با پایتون
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
دادهکاوی فرایند کشف اطلاعات پیشبینی شده از تجزیه و تحلیل پایگاه دادههای بزرگ می باشد. هدف مورد نظر از دادهکاوی ،ایجاد یک مدل از یک مجموعه داده است به طوری که بتوان بینش خود را به مجموعه دادههای مشابه تعمیم داد.
داده کاوی با پایتون
نرمافزار برنامهنویسی پایتون یکی از نرمافزارهای کارآمد در دادهکاوی میباشد. پایتون به دلیل سادگی و همه منظوره بودن و ایجاد برنامههای کاربردی و تحلیل داده مورد توجه همگان قرار گرفته است. همچنین داشتن کتابخانههای متعدد و دسترسی آسان به آن موجب گرایش بسیاری از برنامه نویسان به زبان پایتون شدهاست. به همین دلیل به توضیح نکاتی از تکنیکهای دادهکاوی با پایتون میپردازیم.
کتابخانههای لازم برای داده کاوی با پایتون
برای انجام داده کاوی با پایتون باید کتابخانههای لازم را بدانیم تا با بهرهگیری از آنها کدها را اجرا کنیم. در ادامه دستهای از کتابخانههای مهم را نام میبریم.
Numpy: ماژولی توسعه یافته و متن باز است که عملکردهای از پیش تعیین شدهای از روتینهای عددی در اختیار ما قرار میدهد.
Scipy: این امکان را به ما میدهد که در ارایههای n بعدی دست ببریم.
Matplotlib: برای ما تصویر سازی و ترسیم و ویژوالیزیشن را ممکن میکند.
Matplotlib: بیشتر برای الگوریتمهای معروف یادگیری ماشین است.
Pandas: دارای ساختارهای اطلاعاتی سطح بالا و ابزارهای طراحی برای عملیات ساده و سریه آنالیزی است.
دیگر کتابخانه های مورد نیاز: Theono ,NLTK ,statsmodels ,gensim, …
فراخوانی کتابخانه در پایتون
برای استفاده از کتابخانهها پیش از شروع کدنویسی باید آنها را فراخواند:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
import seaborn as sns
1
2
3
4
5
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
import seaborn as sns
آمادهسازی داده با پایتون
اولین قدم در داده کاوی آمادهسازی داده ها می باشد که روشهای مختلفی با استفاده از کتابخانههای متفاوت (بسته به نوع دادهها و نتیجه مورد نیاز) دارد. آمادهسازی داده برای الگوریتمهای معروف یادگیری ماشین(machine learning) که یکی از ابزارهای داده کاوی در پایتون محسوب میشود نیز کاربرد دارد:
تحلیل دادهها
مدیریت دادههای ناکامل
نرمال ساختن دادهها
دستهبندی دادهها
یکی از روشهای معرفی داده به برنامه در پایتون از طریق دستور زیر است (مثال: دیتاست IRIS را در نظر میگیریم که شامل دادههای مرتبط با ۵۰ نمونه از ۳ مدل گل میباشد. دادههای دریافتی شامل ۵ ردیف میباشند ۴ ردیف اول مقادیر و ردیف آخر کلاس نمونه ما میباشد):
با استفاده از کد زیر میتوانیم دیتاست IRIS را در پایتون لود کرده و آماده سازی کنیم:
import urllib2
url = 'http://aima.cs.berkeley.edu/data/iris.csv'
u = urllib2.urlopen(url)
localFile = open('iris.csv', 'w')
localFile.write(u.read())
numpy
import genfromtxt, zeros
# read the first 4 columns
data = genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3))
# read the fifth column
target = genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str)
print set(target) # build a collection of unique elements
set(['setosa', 'versicolor', 'virginica'])
1
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com3
4
5
6
7
8
9
10
11
12
13
import urllib2
url = 'http://aima.cs.berkeley.edu/data/iris.csv'
u = urllib2.urlopen(url)
localFile = open('iris.csv', 'w')
localFile.write(u.read())
numpy
import genfromtxt, zeros
# read the first 4 columns
data = genfromtxt('iris.csv',delimiter=',',usecols=(0,1,2,3))
# read the fifth column
target = genfromtxt('iris.csv',delimiter=',',usecols=(4),dtype=str)
print set(target) # build a collection of unique elements
set(['setosa', 'versicolor', 'virginica'])
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
با استفاده از کدهای فوق ما دیتاست iris را دانلود میکنیم و در یک فایل بنام iris.csv ذخیره میکنیم و سپس فایل iris.csv را با استفاده از کتابخانه genformtxt لود میکنیم
تصویر سازی داده ها در پایتون
فهمیدن این که دادهها چه اطلاعاتی به ما میدهند و چگونگی ساختار آنها یک مأموریت مهم در دادهکاوی میباشد. تصویر سازی به ما کمک میکند تا به صورت گرافیکی این اطلاعات را بدست آوریم. استفاده از دستورهای نمودار کشیدن به ما کمک میکند تا مقدارهای دو داده مختلف را به صورت گرافیکی با هم مقایسه کنیم.
مثال:دستور زیر دیتای Iris را برای ما نمایش میدهد (البته ما تنها دو ستون اول را نمایش میدهیم)
import plot, show
plot(data[target== 'setosa',0],data[target =='setosa',2],'bo')
plot(data[target== 'versicolor',0],data[target =='versicolor',2],'ro')
plot(data[target== 'virginica',0],data[target =='virginica',2],'go')
show()
1
2
3
4
5
import plot, show
plot(data[target== 'setosa',0],data[target =='setosa',2],'bo')
plot(data[target== 'versicolor',0],data[target =='versicolor',2],'ro')
plot(data[target== 'virginica',0],data[target =='virginica',2],'go')
show()
نتیجه دستورات فوق نموداری به شکل زیر می باشد:
نمایش دیتای Iris در پایتون
نمایش دیتای Iris در پایتون
گراف حاصل شامل ۱۵۰ نقطه و ۳ رنگ که نشانگر کلاسها هستند است.
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
با استفاده از کتابخانه plot و show در پایتون میتوانیم نمودارهای گرافیگی خود را همانند تصویر فوق ترسیم کنیم.
بعد از آماده سازی داده ها ، در داده کاوی معمولا ما به دنبال یکی از اهداف زیر می باشیم:
خوشه بندی داده ها
طبقه بندی داده ها
رگرسیون روی داده ها
و ….
در ادامه مختصری در خصوص موارد فوق توضیح میدهیم تا با مفاهیم فوق کمی آشنا شوید:
طبقهبندی(classification) یا دسته بندی:
هدف از طبقه بندی داده ها این است که با استفاده از داده های موجود یک مدل را بسازیم که بتوانیم با این مدل کلاس داده های آینده را پیش بینی کنیم یا بعبارت دیگر ابتدا دادهها را ردهبندی میکند برای اینکه مدلی ساخته شود که بتوان از آن برای پیش بینی رده آنهایی که مشخص نیستند استفاده کرد.
بعنوان مثال طبقهبندی ایمیل بعنوان اسپم یا قانونی
خوشهبندی(clustering)
خوشه بندی یک فرایند اتوماتیک است که دادهها را به مجموعه و دستههایی که اعضای آنها مشابه هم می باشند تقسیم میکند. در هر دسته اعضا با هم مشابهاند و با دستههای دیگر نامشابه می باشند.
در کنار خوشهبندی مفهوم دستهبندی وجود دارد. هدف خوشهبندی پیدا کردن دسته شمارا و متناهی از خوشههاست برای توصیف داده هاست اما دستهبندی هدف ایجاد یک مدل پیشگویی کننده را دارد که هم توانایی دستهبندی دادههای ورودی را داشته باشد و هم بتوان از آن برای پیش گویی اینکه داده تازهوارد شده متعلق به کدام دسته است استفاده کرد.
رگرسیون(Regression)
این الگوریتم به بررسی روابط میان دادهها و مدل سازی آنها میپردازد. هدف این تکنیک پیش بینی مقدار یک متغیر پیوسته بر اساس مقادیر دیگر متغیرهاست. شامل دونوع است:
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
رگرسیون خطی
رگرسیون غیر خطی
کد های زیر یک مثال برای رگرسیون خطی در پایتون می باشد:
from numpy.random import rand
x = rand(40,1) # explanatory variable
y = x*x*x+rand(40,1)/5 # depentend variable
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(x,y)
1
2
3
4
5
6
from numpy.random import rand
x = rand(40,1) # explanatory variable
y = x*x*x+rand(40,1)/5 # depentend variable
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(x,y)
جهت رسم نمودار نیز کد زیر مورد استفاده است:
from numpy import linspace, matrix
xx = linspace(0,1,40)
plot(x,y,'o',xx,linreg.predict(matrix(xx).T),'--r')
show()
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
[/php]
1
2
3
4
5
6
from numpy import linspace, matrix
xx = linspace(0,1,40)
plot(x,y,'o',xx,linreg.predict(matrix(xx).T),'--r')
show()
[/php]
نتیجه کد بدین صورت است: