IrisDataset – қолдану арқылы бағдарламасын дайындау
Реферат
Тақырыбы: IrisDataset - қолдану арқылы бағдарламасын дайындау.
Оқытушы:
Мамандық:
Орындаған:
МАЗМҰНЫ
1. КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3
2. НЕГІЗГІ БӨЛІМ
2.1. Фишердің ирис-гүлдері датасеті ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.2. K-MEANS алгоритмі ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 4
3. ПРАКТИКАЛЫҚ БӨЛІМ
3.1. Фишердің ирис-гүлдері датасетін анализдеудің реализациясы ... ... ... ...6
4. ҚОРЫТЫНДЫ ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..13
5. ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ...14
КІРІСПЕ
Фишердің ирис- гүлдері датасеті- бұл классификация міндеті үшін деректер жиынтығы, Рональд Фишер 1936 жылы әзірлеген дискриминантты талдау әдісінің жұмысын көрсетті. Кейде оны Андерсон ирисі деп атайды, өйткені деректер американдық ботаник Эдгар Андерсонмен жиналған. Бұл деректер жинағы классикалық болды және әртүрлі статистикалық алгоритмдердің жұмысын иллюстрациялау үшін жиі қолданылады.
Айтып өткендей ирис датасеті негізінен классификация міндеті үшін арналған, біз бұл датасеттіңSpecies бағанын қолданбай кластеризация міндеті үшін қарастырып көрмекшіміз. Кластеризация міндеті үшін K- meansалгоритмін тандадық.
K- meansалгоритмін 1950 жылы ГугоШтейнгауз және СтюартЛлойдпен бірге ойлап тапты.Бұл алгоритм иерархиялық емес алгоритм болып табылады.
НЕГІЗГІ БӨЛІМ
Фишердің ирис- гүлдері датасетінде иристің 150 данасы туралы деректерден тұрады. Әрбір ирис гүлі үшін төрт сипаттама өлшемі (сантиметрмен) берілген:
* Гүл тостағаншасының ұзындығы (ағылш . sepallength);
* Гүл тостағаншасының ені (ағылш. sepalwidth);
* Гүл жапырақшаның ұзындығы (ағылш . petallength);
* Гүл жапырақшаның ені (ағылш. petalwidth).
Деректер жиынында ирис гүлінің 50 данадан үш түрі көрсетілген:
* Irissetosa;
* Irisvirginica;
* Irisversicolor.
Осы деректер жиынтығының өлшеу деректері бойынша өсімдіктің түрін анықтайтын жіктеу ережесін құру талап етіледі.
K- means алгоритмі
K еркін бастапқы кластерлер орталықтары таңдалады-әдетте k объектілері таңдалады.
Негізгі идеясы:Әрбір итерацияда алдыңғы қадамда алынған әрбір кластер үшін массалар орталығы қайта есептелетіні, содан кейін векторлар кластерлерге жаңа орталықтардың қайсысы таңдалған метрика бойынша жақын болғанына сәйкес қайта бөлінеді. Алгоритм қандай да бір итерацияда кластерлердің өзгеруі болмаған кезде немесе ең үлкен санды итерацияға жеткенде аяқталады.
Күрделігі:O[ikdn], i- итерация саны, dn- кіріс деректерінің көлемі, n- шығыс деректерінің көлемі, k- класс саны.
Артықшылығы: қарапайымдылығы, аз көлемдегі деректермен жұмыс істеу оңтайлығы, түсініктілігі.
Кемшілігі: кластар санын алдын ала беру қажеттігі, үлкен көлемде деректермен жұмыс жасау қиындығы, кластер орталығын анықтау кезінде өзгеріске әкелуі.
ПРАКТИКАЛЫҚ БӨЛІМ
In[1]
importnumpyasnp
importpandasaspd
importseabornassns
importmatplotlib.pyplotasplt
#қажетті кітапханаларды қосамыз
In[2]
df=pd.read_csv("Iris.csv")
#csv файлын (үтірмен бөлінген мәндер) оқу және оны pandas деректер жақтауына түрлендіру үшін қолданылады.
df.head()#деректер кестесінің алғашқы 5 жолын қайтарады.
Out[2]
IdSepalLengthSepalWidthPetalLengthP etalWidthSpecies
15.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
4 4.6 3.1 1.5 0.2 Iris-setosa
5 5.0 3.6 1.4 0.2 Iris-setosa
In[3]
df.shape#жолдар мен бағандар санын сақтайды
Out[3]
(150, 6)
In[4]
df.info()
#әрбір бағанның деректер түрлерін және барлық деректер үшін жадты пайдалануды қоса алғанда, деректер жақтауы туралы ақпаратты қайтарады.
class 'pandas.core.frame.DataFrame'
RangeIndex: 150 entries, 0 to 149
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Id 150 non-null int64
1 SepalLengthCm 150 non-null float64
2 SepalWidthCm 150 non-null float64
3 PetalLengthCm 150 non-null float64
4 PetalWidthCm 150 non-null float64
5 Species 150 non-null object
dtypes: float64(4), int64(1), object(1)
memory usage: 7.2+ KB
In[5]
df.describe()
#деректер жақтауының сандық мәндерін есептеу үшін қолданылады.
Out[5]
IdSepalLengthSepalWidthPetalLengthP etalWidth
count 150.000000 150.000000 150.000 000 150.000000 150.000000
mean 75.500000 5.843333 3.054000 3. 758667 1.198667
std 43.445368 0.828066 0.433594 1.7 64420 0.763161
min 1.000000 4.300000 2.000000 1.00 0000 0.100000
25% 38.250000 5.100000 2.800000 1.6 00000 0.300000
50% 75.500000 5.800000 3.000000 4.3 50000 1.300000
75% 112.750000 6.400000 3.300000 5. 100000 1.800000
max 150.000000 7.900000 4.400000 6. 900000 2.500000
In[6]
df['Species'].value_counts()
#бірегей мәндер саны бар қатарды алу үшін қолданылады.
Out[6]
Iris-setosa 50
Iris-versicolor 50
Iris-virginica 50
Name: Species, dtype: int64
In[7]
df = df.drop('Id', axis = 1)
#деректерді тазалау ол деректерді анализдеудегі негізгі қызмет болып табылады. Деректер ішінде тоқтау сөздер немесе сол сияқты қажетсіз деректер болса оларды жою маңызды. Оларды жою алгоритмнің жақсы жылдам жұмыс істеуге көмектеседі. Біздің қолданып отырған датасетіміз таза болғандықтан тазалауды қажет етпейді. Бірақ деректер туралы ақпарат алғанда "Id" бағаны бар екенін көрдік ол біз үшін қажетсіз, сондықтан ол бағанды өшіріп тастаймыз.
In[8]
sns.pairplot(df, hue = 'Species')
#seaborn кітапханасы арқылы pairplot көмегімен қос қатынас жасаймыз. Біз бұл арқылы деректердің визуализациясын көре аламыз. 3 әртүрлі түстер үшін hue- ні 'Species' бағанына теңестіреміз.
Out[8]
seaborn.axisgrid.PairGridat 0x15f6daec948
In[9]
g=sns.violinplot(y='Species', x='SepalLengthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='SepalWidthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='PetalLengthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='PetalWidthCm', data=df, inner='quartile')
plt.show()
# seaborn кітапханасы арқылы violinplot көмегімендеректердің визуалды түрін тұрғызы аламыз
In[10]
fromsklearn.preprocessingimportLabe lEncoder
enc = LabelEncoder()
df['Species'] = enc.fit_transform(df['Species'])
df.head()
#Машиналық оқытуда категориялық деректерді сандық деректерді түрлендіру
Out[10]
SepalLengthSepalWidthPetalLengthPet alWidthSpecies
5.1 3.5 1.4 0.2 0
4.9 3.0 1.4 0.2 0
4.7 3.2 1.3 0.2 0
4.6 3.1 1.5 0.2 0
5.0 3.6 1.4 0.2 0
In[11]
fromsklearnimportmetrics
fromsklearn.treeimportDecisionTreeC lassifier, plot_tree
fromsklearn.model_selectionimporttr ain_test_split
# Scikit-learn (бұрын scikits.learn және sklearn ретінде белгілі) - бұл Python бағдарламалау тілін бағдарламалық қамтамасыз ету үшін тегін машина оқыту кітапханасы. Ол әртүрлі жіктеу алгоритмдері, регрессия және кластеризация бар
In[12]
X = df.drop(['Species'], axis=1)
y = df['Species']
#мұнда деректерді екіге бөліп аламыз, X- те 'Species' бағандарынан басқалары, y-те тек 'Species' бағаны бар.
In[13]
fromsklearn.clusterimportKMeans
In[14]
kmeans ... жалғасы
Тақырыбы: IrisDataset - қолдану арқылы бағдарламасын дайындау.
Оқытушы:
Мамандық:
Орындаған:
МАЗМҰНЫ
1. КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3
2. НЕГІЗГІ БӨЛІМ
2.1. Фишердің ирис-гүлдері датасеті ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.2. K-MEANS алгоритмі ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 4
3. ПРАКТИКАЛЫҚ БӨЛІМ
3.1. Фишердің ирис-гүлдері датасетін анализдеудің реализациясы ... ... ... ...6
4. ҚОРЫТЫНДЫ ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..13
5. ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ...14
КІРІСПЕ
Фишердің ирис- гүлдері датасеті- бұл классификация міндеті үшін деректер жиынтығы, Рональд Фишер 1936 жылы әзірлеген дискриминантты талдау әдісінің жұмысын көрсетті. Кейде оны Андерсон ирисі деп атайды, өйткені деректер американдық ботаник Эдгар Андерсонмен жиналған. Бұл деректер жинағы классикалық болды және әртүрлі статистикалық алгоритмдердің жұмысын иллюстрациялау үшін жиі қолданылады.
Айтып өткендей ирис датасеті негізінен классификация міндеті үшін арналған, біз бұл датасеттіңSpecies бағанын қолданбай кластеризация міндеті үшін қарастырып көрмекшіміз. Кластеризация міндеті үшін K- meansалгоритмін тандадық.
K- meansалгоритмін 1950 жылы ГугоШтейнгауз және СтюартЛлойдпен бірге ойлап тапты.Бұл алгоритм иерархиялық емес алгоритм болып табылады.
НЕГІЗГІ БӨЛІМ
Фишердің ирис- гүлдері датасетінде иристің 150 данасы туралы деректерден тұрады. Әрбір ирис гүлі үшін төрт сипаттама өлшемі (сантиметрмен) берілген:
* Гүл тостағаншасының ұзындығы (ағылш . sepallength);
* Гүл тостағаншасының ені (ағылш. sepalwidth);
* Гүл жапырақшаның ұзындығы (ағылш . petallength);
* Гүл жапырақшаның ені (ағылш. petalwidth).
Деректер жиынында ирис гүлінің 50 данадан үш түрі көрсетілген:
* Irissetosa;
* Irisvirginica;
* Irisversicolor.
Осы деректер жиынтығының өлшеу деректері бойынша өсімдіктің түрін анықтайтын жіктеу ережесін құру талап етіледі.
K- means алгоритмі
K еркін бастапқы кластерлер орталықтары таңдалады-әдетте k объектілері таңдалады.
Негізгі идеясы:Әрбір итерацияда алдыңғы қадамда алынған әрбір кластер үшін массалар орталығы қайта есептелетіні, содан кейін векторлар кластерлерге жаңа орталықтардың қайсысы таңдалған метрика бойынша жақын болғанына сәйкес қайта бөлінеді. Алгоритм қандай да бір итерацияда кластерлердің өзгеруі болмаған кезде немесе ең үлкен санды итерацияға жеткенде аяқталады.
Күрделігі:O[ikdn], i- итерация саны, dn- кіріс деректерінің көлемі, n- шығыс деректерінің көлемі, k- класс саны.
Артықшылығы: қарапайымдылығы, аз көлемдегі деректермен жұмыс істеу оңтайлығы, түсініктілігі.
Кемшілігі: кластар санын алдын ала беру қажеттігі, үлкен көлемде деректермен жұмыс жасау қиындығы, кластер орталығын анықтау кезінде өзгеріске әкелуі.
ПРАКТИКАЛЫҚ БӨЛІМ
In[1]
importnumpyasnp
importpandasaspd
importseabornassns
importmatplotlib.pyplotasplt
#қажетті кітапханаларды қосамыз
In[2]
df=pd.read_csv("Iris.csv")
#csv файлын (үтірмен бөлінген мәндер) оқу және оны pandas деректер жақтауына түрлендіру үшін қолданылады.
df.head()#деректер кестесінің алғашқы 5 жолын қайтарады.
Out[2]
IdSepalLengthSepalWidthPetalLengthP etalWidthSpecies
15.1 3.5 1.4 0.2 Iris-setosa
2 4.9 3.0 1.4 0.2 Iris-setosa
3 4.7 3.2 1.3 0.2 Iris-setosa
4 4.6 3.1 1.5 0.2 Iris-setosa
5 5.0 3.6 1.4 0.2 Iris-setosa
In[3]
df.shape#жолдар мен бағандар санын сақтайды
Out[3]
(150, 6)
In[4]
df.info()
#әрбір бағанның деректер түрлерін және барлық деректер үшін жадты пайдалануды қоса алғанда, деректер жақтауы туралы ақпаратты қайтарады.
class 'pandas.core.frame.DataFrame'
RangeIndex: 150 entries, 0 to 149
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Id 150 non-null int64
1 SepalLengthCm 150 non-null float64
2 SepalWidthCm 150 non-null float64
3 PetalLengthCm 150 non-null float64
4 PetalWidthCm 150 non-null float64
5 Species 150 non-null object
dtypes: float64(4), int64(1), object(1)
memory usage: 7.2+ KB
In[5]
df.describe()
#деректер жақтауының сандық мәндерін есептеу үшін қолданылады.
Out[5]
IdSepalLengthSepalWidthPetalLengthP etalWidth
count 150.000000 150.000000 150.000 000 150.000000 150.000000
mean 75.500000 5.843333 3.054000 3. 758667 1.198667
std 43.445368 0.828066 0.433594 1.7 64420 0.763161
min 1.000000 4.300000 2.000000 1.00 0000 0.100000
25% 38.250000 5.100000 2.800000 1.6 00000 0.300000
50% 75.500000 5.800000 3.000000 4.3 50000 1.300000
75% 112.750000 6.400000 3.300000 5. 100000 1.800000
max 150.000000 7.900000 4.400000 6. 900000 2.500000
In[6]
df['Species'].value_counts()
#бірегей мәндер саны бар қатарды алу үшін қолданылады.
Out[6]
Iris-setosa 50
Iris-versicolor 50
Iris-virginica 50
Name: Species, dtype: int64
In[7]
df = df.drop('Id', axis = 1)
#деректерді тазалау ол деректерді анализдеудегі негізгі қызмет болып табылады. Деректер ішінде тоқтау сөздер немесе сол сияқты қажетсіз деректер болса оларды жою маңызды. Оларды жою алгоритмнің жақсы жылдам жұмыс істеуге көмектеседі. Біздің қолданып отырған датасетіміз таза болғандықтан тазалауды қажет етпейді. Бірақ деректер туралы ақпарат алғанда "Id" бағаны бар екенін көрдік ол біз үшін қажетсіз, сондықтан ол бағанды өшіріп тастаймыз.
In[8]
sns.pairplot(df, hue = 'Species')
#seaborn кітапханасы арқылы pairplot көмегімен қос қатынас жасаймыз. Біз бұл арқылы деректердің визуализациясын көре аламыз. 3 әртүрлі түстер үшін hue- ні 'Species' бағанына теңестіреміз.
Out[8]
seaborn.axisgrid.PairGridat 0x15f6daec948
In[9]
g=sns.violinplot(y='Species', x='SepalLengthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='SepalWidthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='PetalLengthCm', data=df, inner='quartile')
plt.show()
g=sns.violinplot(y='Species', x='PetalWidthCm', data=df, inner='quartile')
plt.show()
# seaborn кітапханасы арқылы violinplot көмегімендеректердің визуалды түрін тұрғызы аламыз
In[10]
fromsklearn.preprocessingimportLabe lEncoder
enc = LabelEncoder()
df['Species'] = enc.fit_transform(df['Species'])
df.head()
#Машиналық оқытуда категориялық деректерді сандық деректерді түрлендіру
Out[10]
SepalLengthSepalWidthPetalLengthPet alWidthSpecies
5.1 3.5 1.4 0.2 0
4.9 3.0 1.4 0.2 0
4.7 3.2 1.3 0.2 0
4.6 3.1 1.5 0.2 0
5.0 3.6 1.4 0.2 0
In[11]
fromsklearnimportmetrics
fromsklearn.treeimportDecisionTreeC lassifier, plot_tree
fromsklearn.model_selectionimporttr ain_test_split
# Scikit-learn (бұрын scikits.learn және sklearn ретінде белгілі) - бұл Python бағдарламалау тілін бағдарламалық қамтамасыз ету үшін тегін машина оқыту кітапханасы. Ол әртүрлі жіктеу алгоритмдері, регрессия және кластеризация бар
In[12]
X = df.drop(['Species'], axis=1)
y = df['Species']
#мұнда деректерді екіге бөліп аламыз, X- те 'Species' бағандарынан басқалары, y-те тек 'Species' бағаны бар.
In[13]
fromsklearn.clusterimportKMeans
In[14]
kmeans ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz