簡單的線性分類器

2021-08-03 21:43:20 字數 1465 閱讀 4581

乙個簡單的線性分類器

#coding=utf-8

import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

#線性分類的一種演算法

from sklearn.linear_model import logisticregression

#讀入訓練集和測試集,csv類似於excel

df_train = pd.read_csv("breast-cancer-train.csv")

df_test = pd.read_csv("breast-cancer-train.csv")

#選出正樣本集,負樣本集,特徵是type值不同而已為它們加上屬性,格式為屬性,去掉type

df_test_negative = df_test.loc[df_test['type']==0][['clump thickness', 'cell size']]

df_test_positive = df_test.loc[df_test['type']==1][['clump thickness', 'cell size']]

lr = logisticregression()

#選出10個樣本進行訓練

lr.fit(df_train[['clump thickness', 'cell size']][:10], df_train['type'][:10])

#輸出訓練結果(正確率)

print("testing accuracy (10 training samples):",

lr.score(df_test[['clump thickness', 'cell size']], df_test['type']))

#繪圖plt.scatter(df_test_negative['clump thickness'],

df_test_negative['cell size'],

marker='o',

s=200,

c='red')

plt.scatter(df_test_positive['clump thickness'],

df_test_positive['cell size'],

marker='o',

s=150,

c='black')

plt.xlabel('clump thickness')

plt.ylabel('cell size')

#畫出直線

intercept = lr.intercept_

coef = lr.coef_[0, :]

lx = np.arange(0, 12)

ly = (-intercept-lx*coef[0])/coef[1]

plt.plot(lx, ly, c="yellow")

plt.show()

線性分類器和非線性分類器

線性和非線性的區別 1.線性linear,指量與量之間按比例 成直線的關係,在數學上可以理解為一階導數為常數的函式 非線性non linear則指不按比例 不成直線的關係,一階導數不為常數。2.線性的可以認為是1次曲線,比如y ax b 即成一條直線 非線性的可以認為是2次以上的曲線,比如y ax ...

線性分類器

softmax回歸是多分類,其他都是二分類 f x w,b w tx b y in r g f x w begin 1 if f x w 0 0 if f x w 0 end y x in mathbb d y in g f x w begin 1 if f x w 0 0 if f x w 0 e...

線性分類器分類準則

以下 屬於線性分類器最佳準則?機器學習 ml模型 易 a.感知準則函式 b.貝葉斯分類 c.支援向量機 d.fisher準則 正確答案 acd 線性分類器有三大類 感知器準則函式 svm fisher準則,而貝葉斯分類器不是線性分類器。感知準則函式 準則函式以使錯分類樣本到分介面距離之和最小為原則。...