I was reading on the Bitcoin wiki (https://en.bitcoin.it/wiki/Transaction_fees ) that a user can set his own fees when conducting a bitcoin transaction. Like many, I have a Coinbase account, but I don't see anywhere in there where I can set the transaction fee. Is this something the exchanges come up with? How do they figure out what transaction fee to propose so that the transaction will be accepted by miners?
Coinbase does not allow you to set fees, and has been called out for their practices in this regard, as have others. The surest way to have control over what happens with your Bitcoin is to interact with the Bitcoin network directly via a full node, and to not rely on, or trust third party services. This is precisely why Bitcoin exists.
Coinbase is a custodial bitcoin wallet so, I think you can't set a custom fee for a transaction.
Bitcoin-core GUI using estimateSmartFee function to get estimate transaction fee.
estimateSmartFee getting the estimated fee sent with each transaction in the mempool.