Tasniflash
Scikit-learn tasniflashni regressiya bilan bir xil tarzda amalga oshiradi. U logistik regressiya va k-eng yaqin qo'shnilar, qo'llab-quvvatlash vektor mashinasi, sodda bayes klassifikatori, qarorlar daraxti, shuningdek, tasodifiy o'rmon, AdaBoost va gradientni kuchaytirish kabi usullar ansamblini qo'llab-quvvatlaydi.
Ushbu maqola tasniflash uchun tasodifiy o'rmon usulidan qanday foydalanishni ko'rsatadi. Ushbu yondashuv regressiya holatida qo'llaniladigan yondashuvga juda o'xshaydi. Ammo endi biz vino bilan bog'liq ma'lumotlar to'plamidan foydalanamiz, tasniflagichni aniqlaymiz va uni aniqlash koeffitsienti o'rniga tasniflash aniqligi bilan baholaymiz.
>>> numpy ni np sifatida
import qiling >>> sklearn.datasets dan import load_wine >>>
sklearn.ensemble dan import RandomForestClassifier
>>> sklearn.model_selection import train_test_split
>>> x, y = load_wine (return_X_y=True)
>>> x_train, x_test, y_train, y_test =\
... train_test_split(x, y, test_size=0,33, random_state=0)
>>> tasniflagichi = RandomForestClassifier(n_estimators=10, random_state=0)
>>> klassifikator. fit(x_train, y_train)
RandomForestClassifier(bootstrap=True, class_weight=Yo'q, mezon='gini',
max_depth=Yo'q, max_features='auto', max_leaf_nodes=Yo'q,
min_impurity_decrease=0,0,min_impurity_split=Yo'q,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0,0, n_estimators=10,
n_jobs=Hech, oob_score=False, random_state=0, verbose=0, warm_start
=False)
>>>x klassifikatori >> in. >klassifikator.score(x_test, y_test) 1.0
Yaxshi o'qitilgan model boshqa yangi kirishlarni hisobga olgan holda chiqishni bashorat qilish uchun ishlatilishi mumkin. Bunday holda, .predict() buyrug'i ishlatiladi: regressor.predict(x_new).
klaster tahlili
Klasterlash - bu scikit-learn-da keng qo'llab-quvvatlanadigan nazoratsiz ta'lim sohasi. K-o'rtachalar usuliga qo'shimcha ravishda yaqinlik tarqalishi usuli, spektral klasterlash, aglomerativ klasterlash va boshqalarni qo'llash mumkin.
Ushbu maqolada biz k-vosita usulini ko'rsatamiz. Uni amalga oshirayotganda, ma'lumotlaringizni standartlashtirish yoki normallashtirish mantiqiymi yoki yo'qmi va ayniqsa, qaysi masofa o'lchovi mos kelishiga ehtiyot bo'ling (ko'p hollarda bu Evklid masofasi).
Shunga qaramay, biz ma'lumotlarni import qilish va olishdan boshlaymiz. Bu safar biz NumPy va sklearn.cluster.KMeans dan foydalanamiz:
>>> numpy ni np sifatida import qiling >>>
sklearn.cluster import KMeans
>>> x = np.array([(0.0, 0.0),
... (9.9, 8.1),
... (-1.0, 1.0) ,
... (7.1, 5.6),
... (-5.0, -5.5),
... (8.0, 9.8),
... (0.5, 0.5)])
>>> x
massivi([[ 0. , 0. ],
[ 9.9, 8.1],
[-1. , 1. ],
[ 7.1, 5.6],
[-5. , -5.5],
[ 8. , 9.8],
[ 0.5, 0.5]])
Keyingi qadam ma'lumotlarni o'lchashdir, lekin bu har doim ham zarur emas. Biroq, ko'p hollarda bu aslida yaxshi fikr. Ma'lumotlarni qayta ishlash tugallangach, biz KMeans nusxasini yaratamiz va uni ma'lumotlarimizga moslashtiramiz:
>>> cluster_analyzer = KMeans(n_clusters=3, init='k-means++')
>>> cluster_analyzer.fit()
>>> cluster_analyzer.fit(x)
KMeans(algoritm='auto', copy_x=True, init= 'k-means++', max_iter=300,
n_clusters=3, n_init=10, n_jobs=Yo'q, precompute_distances='auto',
random_state=Yo'q, tol=0,0001, batafsil=0)
Shunday qilib, biz natijalarni olishga tayyormiz, masalan, klasterlar markazlarining koordinatalari va har bir kuzatuv tegishli bo'lgan klasterlarning yorliqlari:
>>> cluster_analyzer.cluster_centers_
array([[ 8.33333333, 7.83333333],
[-0.16666667, 0.5 ],
[-5. , -5.5 ]])
>>> cluster_analyzer .
(1, 000,[1, array. , 0, 1], dtype=int32)
dan foydalanishingiz mumkin. Yangi kuzatuvlar uchun eng yaqin klasterlarni olish uchun taxmin() .
Do'stlaringiz bilan baham: |